Без описания |
Поиск в теме | Версия для печати |
Леголегс |
Отправлено: 15 Апреля, 2005 - 13:07:05
|
JS-маньяк
Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004
Откуда: Липецк
Карма 17
|
CODE:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript" language="javascript">
<!--
function setCookie(name, value, shortcook) {
var expdate = new Date();
expdate.setTime(expdate.getTime() + (86400000 * 31));
var curCookie=name+"="+escape(value)+((shortcook)?"":";expires="+expdate.toGMTString());
document.cookie=curCookie;
}
function getCookie(name, defval) {
var prefix = name + "=";
var cookieStartIndex = document.cookie.indexOf(prefix);
if (cookieStartIndex == -1) {
return defval;
}
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
if (cookieEndIndex == -1) {
cookieEndIndex = document.cookie.length;
}
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}
//========Основная рабочая функция, в правке не нуждается
function rotate(imgId, fNameMask, counter, min, max, interval)
{
if (counter > max) counter = min; //этакий цикл
var s = fNameMask.replace("%n%",counter);//ставим число вместо %n%
document.getElementById(imgId).src = s;
counter++;
setCookie('banner'+imgId,counter,0);
//рекурсия с задержкой
setTimeout("rotate('" + imgId + "','" + fNameMask + "'," + counter + "," + min + "," + max + "," + interval + ")", interval);
}
//========Инициирующая функция
function startrotate(imgid,fname,min,max,interval)
{
setTimeout('rotate("'+imgid+'","'+fname+'",'+getCookie("banner"+imgid,min)+','+min+','+max+','+interval+');',10);
}
//=======Настройка
function rotateinit()
{
/*В маске_имени '%n%' будет заменено на номер.
стартовый_No и конечный_No - это пределы изменения номера баннера
интервал - в миллисекундах*/
//Параметры: ID_имаги, маска_имени, стартовый_No, конечный_No, интервал
startrotate("bannerimg1","%n%.bmp",1,4,1000);
startrotate("bannerimg2","%n%.bmp",1,4,1600);
}
//-->
</script>
</head><body onload="rotateinit();">
<img id="bannerimg1" src="1.bmp">
<img id="bannerimg2" src="2.bmp">
</body></html> |
|
|
Леголегс |
Отправлено: 18 Апреля, 2005 - 14:38:44
|
JS-маньяк
Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004
Откуда: Липецк
Карма 17
|
Ну, тут я привёл не скрипт, а пример. Тебе надо всё, что между
CODE:<script type="text/javascript" language="javascript">
<!--
и
//-->
</script> сохранить в файл с именем, например, rotate.js
На всех страницах, где будет баннер(ы) нужно где-то внутри вставить CODE:<script src="rotate.js" type="text/javascript" language="javascript"></script> . Затем так как в примере написать CODE:<body ...возможно, что-то ещё... onload="rotateinit();"> и наконец в нужном месте страницы вставить баннер типа CODE:<img id="bannerimg1" src="1.bmp"> Баннеров может быть несколько, для каждого в файле rotate.js после строки "//Параметры: ID_имаги, маска_имени, стартовый_No, конечный_No, интервал" должно быть по образцу указано, как его крутить. |
|
|
Леголегс |
Отправлено: 12 Апреля, 2010 - 06:11:49
|
JS-маньяк
Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004
Откуда: Липецк
Карма 17
|
M0NG0L, что-то такое получается:
rotate.js:
/* настройки */ var rotate_set = { "id_img_above": [ "picture_above_1.jpg", "picture_above_2.jpg", "picture_above_3.jpg", "picture_above_4.jpg", ], "id_img_below": [ "picture_below_1.jpg", "picture_below_2.jpg", "picture_below_3.jpg", "picture_below_4.jpg", ], }; var rotate_interval = 10000; //миллисекунд /* /настройки */
function setCookie(name, value, shortcook) { var expdate = new Date(); expdate.setTime(expdate.getTime() + (86400000 * 31)); var curCookie=name+"="+escape(value)+((shortcook)?"":";expires="+expdate.toGMTString()); document.cookie=curCookie; } function getCookie(name, defval) { var prefix = name + "="; var cookieStartIndex = document.cookie.indexOf(prefix); if (cookieStartIndex == -1) { return defval; } var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length); if (cookieEndIndex == -1) { cookieEndIndex = document.cookie.length; } return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex)); }
var rotate_index; function rotate_do() { var id; for (id in rotate_set) { document.getElementById(id).lowsrc = document.getElementById(id).src; document.getElementById(id).src = rotate_set[id][rotate_index]; } rotate_index++; if (rotate_set[id].length == rotate_index) rotate_index = 0; setCookie("banner",rotate_index,0); } function rotate_start() { rotate_do(); setInterval(rotate_do,rotate_interval); } function rotate_init() { rotate_index=getCookie("banner",0); var ready=true; for (var id in rotate_set) ready = ready && document.getElementById(id); if (ready) rotate_start(); else document.addEventListener("load",rotate_start, false); } rotate_init();
пример.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head><body> <img id="id_img_above" src=""> <img id="id_img_below" src=""> <script type="text/javascript" src="rotater.js"></script> </body></html>
<script> очень желательно втыкать после всех картинок, тогда он сможет начать загрузку до полной загрузки всей страницы. Если к шапке захочешь добавить третью картинку - просто добавь строчку с id картинки и списком картинок в секции настроек. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (5): « 1 2 3 [4] 5 » |
Сейчас эту тему просматривают: 6 (гостей: 6, зарегистрированных: 0, скрытых: 0) |
« JavaScript » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|