
17.04.2011, 22:03
|
Новичок на форуме
|
|
Регистрация: 17.04.2011
Сообщений: 2
|
|
Ротатор баннеров
Добрый вечер дамы и господа  . Имеется подобный скрипт, предназначенный для ротатации баннеров. В папке "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 я полный чайник со свистком  , собственно поэтому и выношу на всеобщее обсуждение этот простой вопрос.
|
|

18.04.2011, 20:21
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
вам не хватает фазы луны ( рандома, он же случайность )
<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>
|
|

18.04.2011, 20:49
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,144
|
|
melky,
 Вопрос был про ссылку а не про случайное появление картинок
|
|

18.04.2011, 21:08
|
 |
prodigy
|
|
Регистрация: 01.11.2010
Сообщений: 503
|
|
Ваш скрипт только картинку подменяет в баннере, а не весь баннер.
Если картинка просто обернута в гиперссылку, то можно к href обращаться document.images[0].parentNode.href так например, в любом случае до родителя добраться можно
__________________
readOnly
|
|

18.04.2011, 21:18
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,144
|
|
poorking,
<!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>
|
|

18.04.2011, 22:50
|
Новичок на форуме
|
|
Регистрация: 17.04.2011
Сообщений: 2
|
|
Сообщение от poorking
|
Ваш скрипт только картинку подменяет в баннере, а не весь баннер.
|
Действительно...
Сообщение от рони
|
poorking,
<!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>
|
Рони, poorking огромное Вам спасибо! Всё работает
Как говорится - истина была где-то рядом
P.S. Исчерпывающий ответ на вопрос получен. Тему можно закрывать.
|
|

09.02.2025, 14:25
|
Аспирант
|
|
Регистрация: 30.12.2015
Сообщений: 94
|
|
Рони, приветствую. В вашем скрипте есть проблема:
если на странице есть еще какие либо картинки, которые находятся выше картинки, которая задействована скриптом, то задействуется картинка, которая выше картинки из скрипта и она заменяется картинками из ротатора и ротируется, а оригинал перестает ротироваться. Вот пример:
Выше картинки из скрипта я установил картинку с флагом. Результат вы видите.
Как это исправить? Как сделать, чтобы любые другие картинки не подтягивались скриптом?
<!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, 09.02.2025 в 14:30.
|
|

09.02.2025, 18:22
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,144
|
|
Feex,
придумать класс для картинки и заменить document.images[0] на document.querySelector('imgточкакласс')
|
|

09.02.2025, 19:00
|
Аспирант
|
|
Регистрация: 30.12.2015
Сообщений: 94
|
|
<!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" "
В коде исправил уже - всё работает)) СПАСИБО!! Вы снова мне помогли))
Последний раз редактировалось Feex, 09.02.2025 в 19:07.
|
|
|
|