Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2009, 23:43
Интересующийся
Отправить личное сообщение для Asdvin Посмотреть профиль Найти все сообщения от Asdvin
 
Регистрация: 28.12.2008
Сообщений: 22

Открыть ссылку в новом окне
Добрый день знатоки и любители ява скрипта! Такой вопрос:

Вот есть код очень симпотичного слайд-шоу:

<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
);
);


Всё получилось в принципе, но вот незадача.... Картинка открывается на той же страничке. Скажите, как подправить код, что бы при нажатии на одну из картинок в слайд-шоу, открывалась она же в полном размере, НО В НОВОМ окне. И, если это возможно, это самое окно соответсвовало размеру картинки. Не больше и не меньше. Ну в крайнем случае, хотя бы просто В НОВОМ окне.


Благодарю за помощь заранее, т.к. мне тут уже не раз помогали.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2009, 23:57
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вместо
function C_LdLnk(){if(this.lnk)window.location.href=this.lnk}
написать
function C_LdLnk(){if(this.lnk)window.open(this.lnk)}
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2009, 00:07
Интересующийся
Отправить личное сообщение для Asdvin Посмотреть профиль Найти все сообщения от Asdvin
 
Регистрация: 28.12.2008
Сообщений: 22

Kolyaj,
Огромное спасибо! Помогло!

А такую систему, что бы браузер не сваливал на другую страничку, а просто открывал маленькое (по размерам картинки) окно, прямо по верх сайта на котором слайд-шоу находиться - это тяжело осуществить?

В том плане, что если мне и тут поможет замена одной строчки, то не подсажете - какой?

В любом случае - огромное спасибо за уже данный ответ!
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2009, 00:43
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Для этого необходимо знать размеры изображения.
window.open('img.jpg', '_blank', 'width=100,height=100')

При этом картинка просто откроется в браузере, а по умолчанию у браузеров имеются отступы внутри окна. Поэтому желательно или сделать страничку, в которой у body будут убраны отступы и подключена нужная картинка, или указывать ширину/высоту с запасом. Одной строчкой в любом случае не обойтись, т.к. где-то нужно хранить размеры.
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2011, 18:58
Аватар для vitallka
Новичок на форуме
Отправить личное сообщение для vitallka Посмотреть профиль Найти все сообщения от vitallka
 
Регистрация: 08.06.2011
Сообщений: 4

открытие ссылки в новом окне
Код:
<script type="text/javascript">
function tMess(n){var a=[' новое сообщение',' новых сообщения',' новых сообщений'];return a[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2];};function getPM(){$.get("/index/14",function(a){var s=$("b.unread", a).size();if(s){var n=tMess(s),h=_uWnd.getdims(),j=h.clientW-245,g=h.clientH-135,href=(s==1)?$("b.unread",a).parent().attr("href"):'/index/14';new _uWnd('ls','Новые ЛС',200,100,{icon:'http://isucoz.ru/uploads/scripts/mail-message-new.png',min:0,max:0,x:j,y:g,alert:1,autosize:0,fixed:1,shadow:1,resize:0,fadetype:1,fadespeed:1000,fadeclosetype:2,fadeclosespeed:400},'Вам пришло '+s+n+'!<br><br>[ <a href="'+href+'">Прочитать</a> ]');}});setTimeout(getPM,11000)};getPM();
</script>
при нажатии на ссылку оно открывает в новом окне а мне нужно что-бы открывало в новом всплывающем окне заданного размера, вот к примеру :

Код:
<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>
но это прописано html ссылка а как это реализовать в ява скрипте который я выше указал?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как открыть страницу в том же окне? window.open xilol Общие вопросы Javascript 13 29.01.2015 14:29
Событие при нажатии на ССЫЛКУ Ivanishin Events/DOM/Window 11 16.06.2009 01:43
открыть файл во всплывающем окне zerg Общие вопросы Javascript 3 07.03.2009 22:00
Открыть попап из попапа Sla_sh Events/DOM/Window 2 27.10.2008 23:42
Открытие рисунка в новом окне Anatom Элементы интерфейса 3 18.03.2008 16:49