Смена фоновой картинки через каждые 5 секунд
У меня есть
<div id="place"></div> Как сделать чтобы через каждые 5 секунд менялось бы фоновое изображение у DIVa? У меня 5 фоновых картинок, после 5-й нужно чтобы опять первая загружалась и так по кругу. Заранее спасибо. |
<div id="place" style="border:red solid 1px;height:100px;width:340px;"></div> <script type="text/javascript"> var phr = new Array(); phr.push("http://mybb.ru/f/collection/0211.gif"); phr.push("http://mybb.ru/f/collection/0213.gif"); phr.push("http://i039.radikal.ru/0806/ec/a5ffc6d7cfd9.gif"); function Rotator_cont() { var s = 5000; // Время отображения var N=phr.length; var i=Math.round(Math.random()*(N));Rotator(i); function Rotator(i){ i++; if(i>N-1){i=0};//alert(i); document.getElementById('place').style.backgroundImage='url('+phr[i]+')'; timerId01=setTimeout(function(){Rotator(i)},s);return;} }Rotator_cont() </script> |
Круто. А как быть если картинки у меня большие и при подгрузке очередной возникает на долю секунды пустое пространство. Можно ли как то показывать следующую картинку только после полной ее загрузки?
|
sitebuilder,
1. cоздайте нужное кол-во диваков с заранее установленным фоном(фон ставите сss), а скриптом предыдущий display: none: а последущий - display:block; |
Прошу помочь доработать скрипт
Всем доброго времени суток!
Помогите пожалуйста доработать данный скрипт. Он очень хорошо работает и быстро, но хотелось бы, чтобы фоновые картинки переключались плавно. Для меня это очень сложно сейчас. я новичок. Очень прошу помочь!:help: |
Дёшего и сердито
<head> <style> #WallPaper0 { position :absolute; background :url('http://javascript.ru/forum/images/ca_serenity/misc/logo.gif'); height :128px; width :128px; } #WallPaper1 { position :absolute; background :url('http://a.disquscdn.com/1489123367/images/noavatar92.png'); height :128px; width :128px; } </style> <script> var wallpaper = 0, wallslide = 0; function fader() { setTimeout(fader, 25); document.getElementById("WallPaper" + wallpaper).style.opacity = 1.0 - Math.abs(100 - wallslide) / 100; wallslide -= 5; if(wallslide < 0) { wallslide = (wallslide + 200) % 200; wallpaper ++; if(!document.getElementById("WallPaper" + wallpaper)) wallpaper = 0; } } </script> </head> <body onload='fader()'> <span id=WallPaper0>para</span> <span id=WallPaper1>head</span> </body> |
Спасибо, Paduo...ваш вариант совсем другой. В принципе, для "сердито" подойдет))),
только хочется, чтобы одна картинка накладывалась на другую, и между ними чтобы не было белого фона страницы. :-? Я вот что нашел еще: <head> <script type="text/javascript"> var total_pics_num = 4; // колличество изображений var interval = 5000; // задержка между изображениями var time_out = 1; // задержка смены изображений var i = 0; var timeout; var opacity = 100; function fade_to_next() { opacity--; var k = i + 1; var image_now = 'image_' + i; if (i == total_pics_num) k = 1; var image_next = 'image_' + k; document.getElementById(image_now).style.opacity = opacity/100; document.getElementById(image_now).style.filter = 'alpha(opacity='+ opacity +')'; document.getElementById(image_next).style.opacity = (100-opacity)/100; document.getElementById(image_next).style.filter = 'alpha(opacity='+ (100-opacity) +')'; timeout = setTimeout("fade_to_next()",time_out); if (opacity==1) { opacity = 100; clearTimeout(timeout); } } setInterval ( function() { i++; if (i > total_pics_num) i=1; fade_to_next(); }, interval ); </script> </head> /*--------------- <body> <div> <img src='slide_1.jpg' id="image_1" style="position: absolute;" /> <img src='slide_2.jpg' id="image_2" style="opacity: 0; filter: alpha(opacity=0); position: absolute;" /> <img src='slide_3.jpg' id="image_3" style="opacity: 0; filter: alpha(opacity=0); position: absolute;" /> <img src='slide_4.jpg' id="image_4" style="opacity: 0; filter: alpha(opacity=0); position: absolute;" /> </div> </body> У меня была мысль как-то перенести параметр :write: : document.getElementById(' ... ').style.opacity в исходный текст кода у ТС (который у Deff во втором сообщении) таким образом, чтобы было как бы выплывание фоновой картинки из другой, а не обесцвечивание до фона страницы и переключение на другую. Это возможно? |
e-partner,
слайдер блоками с opacity |
Цитата:
но пока что хочется, чтобы одна картинка выплывала из другой, при этом хочется без подключения библиотек JQuary, чтобы все работало быстро, без проблем у некоторых юзеров и у меня. А еще, рони, как у вас сделать, чтобы слайдер работал только в одну сторону? (вправо скажем) |
Цитата:
function q(a, n) { //(r ^= 1) && a.reverse(); $.when.apply(null, a.map(function(k, c) { var b = (n/a.length) * c; return k.css({ "z-index": 100 }).delay(b).animate({ opacity: 0 }, { easing: "easeOutCirc", duration: 300 }) })).done(function() { a.forEach(function(a) { a.remove() }); setTimeout(m, 1E3) }) } var op = [100,1];//!!! function m() { //Math.random() < .2 && op.reverse(); var e = n(a[1].src, a[0].src, op[0], op[1]); q(e,1200); a.push(a.shift()) } |
Часовой пояс GMT +3, время: 21:15. |