Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Скрипт смены баннера [4]
ТвойWeb » WebMaster класс » JavaScript » Скрипт смены баннера

Страниц (5): « 1 2 3 [4] 5 »
 

31. Mazej - 13 Апреля, 2005 - 11:50:31 - перейти к сообщению
А как сделать чтобы вышеприведенный код не показывал баннеры уже который были показаны до перезагрузки страницы?
32. TvoyWeb - 13 Апреля, 2005 - 17:27:56 - перейти к сообщению
Mazej
Их надо как то помечать. Может использовать для этого куки. По другому ИМХО на JS никак.
33. Mazej - 14 Апреля, 2005 - 06:08:00 - перейти к сообщению
А как будет выглядеть?, если использовать куки?
34. TvoyWeb - 14 Апреля, 2005 - 09:49:47 - перейти к сообщению
Mazej
Я не очень в JS.... Проси ETC'a или жди Леголекса.
35. Леголегс - 15 Апреля, 2005 - 13:07:05 - перейти к сообщению
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>
36. Mazej - 16 Апреля, 2005 - 07:11:00 - перейти к сообщению
Спасибо Леголегс, но куда его вставлять?
37. Леголегс - 18 Апреля, 2005 - 14:38:44 - перейти к сообщению
Ну, тут я привёл не скрипт, а пример. Тебе надо всё, что между
CODE:
<script type="text/javascript" language="javascript">
<!--
и
//-->
</script>
сохранить в файл с именем, например, rotate.js
На всех страницах, где будет баннер(ы) нужно где-то внутри
CODE:
<head>...</head>
вставить
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, интервал" должно быть по образцу указано, как его крутить.
38. M0NG0L - 31 Марта, 2010 - 09:16:04 - перейти к сообщению
Прошу прощения, даже не знаю, ответит кто нибудь или нет, много времени прошло, но Ваш скрипт хорошо работает. Есть вопрос. Хочу сделать на сайте сменную шапку, но она состоит из двух картинок (верхней и нижней части), которые должны одновременно сменяться на другие две и так 6 раз 6 разных шапок по 2 картинки. Ваш скрипт с одной картинкой работает замечательно, но как сделать с двумя частями? Заранее благодарю Вас за ответ.
39. Леголегс - 12 Апреля, 2010 - 06:11:49 - перейти к сообщению
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 картинки и списком картинок в секции настроек.
40. M0NG0L - 17 Апреля, 2010 - 05:10:50 - перейти к сообщению
Спасибо Вам большое, обязательно буду пробовать. Потом отпишусь. Радость

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0431]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33