Ротатор баннеров
Добрый вечер дамы и господа:thanks: . Имеется подобный скрипт, предназначенный для ротатации баннеров. В папке "ban" находятся 3 разных баннера одинакового размера. В данном случае ссылка со всех трёх картинок ведёт на один и тот-же сайт.
Вопрос: как видоизменить код, для того, чтобы привязать каждому баннеру отдельную ссылку? <script language="JavaScript"> i=0; img_a=new Array() img_a[0]=new Image() img_a[1]=new Image() img_a[2]=new Image() img_a[0].src="ban/1.jpg" img_a[1].src="ban/2.jpg" img_a[2].src="ban/3.jpg" function img_b() { document.images[0].src=img_a[i].src document.images[0].src=img_a[i].src document.images[0].src=img_a[i].src i++ if(i>2) i=0; setTimeout("img_b()", 4000) } </script> <body onLoad=img_b()> <a href="http://www.mail.ru" target="_blank" title="Mail"><img src="ban/1.jpg"></a> </body> В javascript я полный чайник со свистком :( , собственно поэтому и выношу на всеобщее обсуждение этот простой вопрос. |
вам не хватает фазы луны ( рандома, он же случайность )
<script language="JavaScript"> img_a=new Array() img_a[0]=new Image() img_a[1]=new Image() img_a[2]=new Image() img_a[0].src="ban/1.jpg" img_a[1].src="ban/2.jpg" img_a[2].src="ban/3.jpg" i = Math.floor( Math.random( ) * ( - 3 ) ) + 4 // случайное число между 1 и 3 function img_b() { document.images[0].src=img_a[i].src; i++; if( i == 3 ) i = 0 ; setTimeout("img_b()", 4000); } </script> <body onLoad=img_b()> <a href="http://www.mail.ru" target="_blank" title="Mail"><img src="ban/1.jpg"></a> </body> |
melky,
:no: Вопрос был про ссылку а не про случайное появление картинок |
Ваш скрипт только картинку подменяет в баннере, а не весь баннер.
Если картинка просто обернута в гиперссылку, то можно к href обращаться document.images[0].parentNode.href так например, в любом случае до родителя добраться можно |
poorking,
:thanks: <!DOCTYPE html> <html> <head> <title></title> <script language="JavaScript"> var img_href =['http://www.mail.ru','http://www.google.ru/','http://search.yahoo.com/'], img_title = ['Mail','Google','Yahoo'], i = 0, img_a=new Array(); img_a[0]=new Image(); img_a[1]=new Image(); img_a[2]=new Image(); img_a[0].src="http://javascript.ru/forum/images/smilies/victory.gif"; img_a[1].src="http://javascript.ru/forum/images/smilies/dance3.gif"; img_a[2].src="http://javascript.ru/forum/images/smilies/agree.gif"; function img_b() { var n = i%3; document.images[0].src=img_a[n].src; document.images[0].parentNode.href=img_href[n]; document.images[0].parentNode.title=img_title[n]; i++; setTimeout("img_b()", 4000); } window.onload=img_b </script> </head> <body> <a href="http://www.mail.ru" target="_blank" title="Mail"><img src="http://javascript.ru/forum/images/smilies/victory.gif"></a> </body> </html> |
Цитата:
Цитата:
Как говорится - истина была где-то рядом :D P.S. Исчерпывающий ответ на вопрос получен. Тему можно закрывать. |
Рони, приветствую. В вашем скрипте есть проблема:
если на странице есть еще какие либо картинки, которые находятся выше картинки, которая задействована скриптом, то задействуется картинка, которая выше картинки из скрипта и она заменяется картинками из ротатора и ротируется, а оригинал перестает ротироваться. Вот пример: Выше картинки из скрипта я установил картинку с флагом. Результат вы видите. Как это исправить? Как сделать, чтобы любые другие картинки не подтягивались скриптом? <!DOCTYPE html> <html> <head> <title></title> <script language="JavaScript"> var img_href =['http://www.mail.ru','http://www.google.ru/','http://search.yahoo.com/'], img_title = ['Mail','Google','Yahoo'], i = 0, img_a=new Array(); img_a[0]=new Image(); img_a[1]=new Image(); img_a[2]=new Image(); img_a[0].src="http://javascript.ru/forum/images/smilies/victory.gif"; img_a[1].src="http://javascript.ru/forum/images/smilies/dance3.gif"; img_a[2].src="http://javascript.ru/forum/images/smilies/agree.gif"; function img_b() { var n = i%3; document.images[0].src=img_a[n].src; document.images[0].parentNode.href=img_href[n]; document.images[0].parentNode.title=img_title[n]; i++; setTimeout("img_b()", 4000); } window.onload=img_b </script> </head> <body> <!-- моя картинка --> <img src="http://www.flags.net/images/smallflags/RUSS0001.GIF" alt=""/><br> <!-- моя картинка --> <a href="http://www.mail.ru" target="_blank" title="Mail"><img src="http://javascript.ru/forum/images/smilies/victory.gif"></a><br> </body> </html> |
Feex,
придумать класс для картинки и заменить document.images[0] на document.querySelector('imgточкакласс') |
<!DOCTYPE html> <html> <head> <title></title> <script language="JavaScript"> var img_href =['http://www.mail.ru','http://www.google.ru/','http://search.yahoo.com/'], img_title = ['Mail','Google','Yahoo'], i = 0, img_a=new Array(); img_a[0]=new Image(); img_a[1]=new Image(); img_a[2]=new Image(); img_a[0].src="http://javascript.ru/forum/images/smilies/victory.gif"; img_a[1].src="http://javascript.ru/forum/images/smilies/dance3.gif"; img_a[2].src="http://javascript.ru/forum/images/smilies/agree.gif"; function img_b() { var n = i%3; document.querySelector('img.rotator').src=img_a[n].src; document.querySelector('img.rotator').parentNode.href=img_href[n]; document.querySelector('img.rotator').parentNode.title=img_title[n]; i++; setTimeout("img_b()", 4000); } window.onload=img_b </script> </head> <body> <!-- моя картинка --> <img src="http://www.flags.net/images/smallflags/RUSS0001.GIF" alt=""/><br> <!-- моя картинка --> <a href="http://www.mail.ru" target="_blank" title="Mail"><img class="rotator" src="http://javascript.ru/forum/images/smilies/victory.gif"></a><br> </body> </html> вроде так, если я правильно понял. Моя картинка не задействуется теперь, но ротации смайлов нет.. Что я не так сделал?) P.S. Сорри!! Моя опечатка))) Вместо "=" я "+" поставил тут: "img class+"rotator" " В коде исправил уже - всё работает)) СПАСИБО!! Вы снова мне помогли)) |
Часовой пояс GMT +3, время: 18:29. |