Открыть ссылку в новом окне
Добрый день знатоки и любители ява скрипта! Такой вопрос:
Вот есть код очень симпотичного слайд-шоу: <script type="text/javascript"> /******************************************************** Create a div with transparent place holder in your html <div id="Carousel" style="position:relative"> <img src="placeholder.gif" width="420" height="300"> </div> placeholder width: 4 sided: 1.42 * carousel image width + 3 6 sided: 2 * carousel image width +4 8 sided: 2.62 * carousel image width + 5 12 sided: 3.87 * carousel image width + 7 placeholder height: carousel image height+2 Insert onload in body tag <body onload="Carousel()"> *********************************************************/ // 7 variables to control behavior var Car_Image_Width=220; var Car_Image_Height=300; var Car_Border=true; // true or false var Car_Border_Color="white"; var Car_Speed=4; var Car_Direction=true; // true or false var Car_NoOfSides=8; // must be 4, 6, 8 or 12 /* array to specify images and optional links. For 4 sided carousel specify at least 2 images For 6 sided carousel specify at least 3 For 8 sided carousel specify at least 4 For 12 sided carousel specify at least 6 If Link is not needed keep it "" */ Car_Image_Sources=new Array( "../album2/al1.jpg","http://www.designsib.ru", "../album2/al2.jpg","http://www.designsib.ru", "../album2/al3.jpg","", //this slide isn't linked "../album2/al4.jpg","http://www.designsib.ru" // NOTE No comma after last line ); /***************** DO NOT EDIT BELOW **********************************/ CW_I=new Array(Car_NoOfSides/2+1);C_ClcW=new Array(Car_NoOfSides/2); C_Coef=new Array( 3*Math.PI/2,0,3*Math.PI/2,11*Math.PI/6,Math.PI/6,3*Math.PI/2,7*Math.PI/4, 0, Math.PI/4,3*Math.PI/2,5*Math.PI/3,11*Math.PI/6,0,Math.PI/6,Math.PI/3); var C_CoefOf=Car_NoOfSides==4?0:Car_NoOfSides==6?2:Car_NoOfSides==8?5:9; C_Pre_Img=new Array(Car_Image_Sources.length); var C_Angle=Car_Direction?Math.PI/(Car_NoOfSides/2):0,C_CrImg=Car_NoOfSides,C_MaxW,C_TotalW, C_Stppd=false,i,C_LeftOffset,C_HalfNo=Car_NoOfSides/2; function Carousel(){ if(document.getElementById){ for(i=0;i<Car_Image_Sources.length;i+=2){ C_Pre_Img[i]=new Image();C_Pre_Img[i].src=Car_Image_Sources[i]} C_MaxW=Car_Image_Width/Math.sin(Math.PI/Car_NoOfSides)+C_HalfNo+1; Car_Div=document.getElementById("Carousel"); for(i=0;i<C_HalfNo;i++){ CW_I[i]=document.createElement("img");Car_Div.appendChild(CW_I[i]); CW_I[i].style.position="absolute"; CW_I[i].style.top=0+"px"; CW_I[i].style.height=Car_Image_Height+"px"; if(Car_Border){ CW_I[i].style.borderStyle="solid"; CW_I[i].style.borderWidth=1+"px"; CW_I[i].style.borderColor=Car_Border_Color} CW_I[i].src=Car_Image_Sources[2*i]; CW_I[i].lnk=Car_Image_Sources[2*i+1]; CW_I[i].onclick=C_LdLnk; CW_I[i].onmouseover=C_Stp; CW_I[i].onmouseout=C_Rstrt} CarImages()}} function CarImages(){ if(!C_Stppd){ C_TotalW=0; for(i=0;i<C_HalfNo;i++){ C_ClcW[i]=Math.round(Math.cos(Math.abs(C_Coef[C_CoefOf+i]+C_Angle))*Car_Image_Width); C_TotalW+=C_ClcW[i]} C_LeftOffset=(C_MaxW-C_TotalW)/2; for(i=0;i<C_HalfNo;i++){ CW_I[i].style.left=C_LeftOffset+"px"; CW_I[i].style.width=C_ClcW[i]+"px"; C_LeftOffset+=C_ClcW[i]} C_Angle+=Car_Speed/720*Math.PI*(Car_Direction?-1:1); if((Car_Direction&&C_Angle<=0)||(!Car_Direction&&C_Angle>=Math.PI/C_HalfNo)){ if(C_CrImg==Car_Image_Sources.length)C_CrImg=0; if(Car_Direction){ CW_I[C_HalfNo]=CW_I[0]; for(i=0;i<C_HalfNo;i++)CW_I[i]=CW_I[i+1]; CW_I[C_HalfNo-1].src=Car_Image_Sources[C_CrImg]; CW_I[C_HalfNo-1].lnk=Car_Image_Sources[C_CrImg+1]} else{ for(i=C_HalfNo;i>0;i--)CW_I[i]=CW_I[i-1]; CW_I[0]=CW_I[C_HalfNo]; CW_I[0].src=Car_Image_Sources[C_CrImg]; CW_I[0].lnk=Car_Image_Sources[C_CrImg+1]} C_Angle=Car_Direction?Math.PI/C_HalfNo:0;C_CrImg+=2}} setTimeout("CarImages()",50)} function C_LdLnk(){if(this.lnk)window.location.href=this.lnk} function C_Stp(){this.style.cursor=this.lnk?"pointer":"default";C_Stppd=true;} function C_Rstrt(){C_Stppd=false} </script> <div id="Carousel" style="position:relative"> <img src="placeholder.gif" width="420" height="300"> </div> Взят отсюда http://www.designsib.ru/script/jsima...=carouselslide Всё прекрасно работает, но хотелось бы его несколько дополнить... А именно: Каждая картинка, в этом слайд шоу может быть и ссылкой. Планирую, что бы ссылки у картинок стояли на саму себя. Т.е. при нажатии на картинку, открывалась она же в полном размере. Этот момент регулируется вот в этом участке кода: Car_Image_Sources=new Array( "../album2/al1.jpg","http://www.designsib.ru", "../album2/al2.jpg","http://www.designsib.ru", "../album2/al3.jpg","", //this slide isn't linked "../album2/al4.jpg","http://www.designsib.ru" // NOTE No comma after last line ); ); Всё получилось в принципе, но вот незадача.... Картинка открывается на той же страничке. Скажите, как подправить код, что бы при нажатии на одну из картинок в слайд-шоу, открывалась она же в полном размере, НО В НОВОМ окне. И, если это возможно, это самое окно соответсвовало размеру картинки. Не больше и не меньше. Ну в крайнем случае, хотя бы просто В НОВОМ окне. Благодарю за помощь заранее, т.к. мне тут уже не раз помогали. :) |
Вместо
function C_LdLnk(){if(this.lnk)window.location.href=this.lnk}написать function C_LdLnk(){if(this.lnk)window.open(this.lnk)} |
Kolyaj,
Огромное спасибо! Помогло! А такую систему, что бы браузер не сваливал на другую страничку, а просто открывал маленькое (по размерам картинки) окно, прямо по верх сайта на котором слайд-шоу находиться - это тяжело осуществить? В том плане, что если мне и тут поможет замена одной строчки, то не подсажете - какой? В любом случае - огромное спасибо за уже данный ответ! |
Для этого необходимо знать размеры изображения.
window.open('img.jpg', '_blank', 'width=100,height=100') При этом картинка просто откроется в браузере, а по умолчанию у браузеров имеются отступы внутри окна. Поэтому желательно или сделать страничку, в которой у body будут убраны отступы и подключена нужная картинка, или указывать ширину/высоту с запасом. Одной строчкой в любом случае не обойтись, т.к. где-то нужно хранить размеры. |
открытие ссылки в новом окне
Код:
<script type="text/javascript"> Код:
<a href="javascript://" id="upml" class="fNavLink" onclick="window.open('$PM_URL$','pmw','scrollbars=1,top=0,left=0,resizable=1,width=680,height=350');return false;">Личные сообщения ($UNREAD_PM$)</a> |
Часовой пояс GMT +3, время: 16:55. |