Я хочу отображать несколько изображений одинакового размера в одной позиции, по одному, с интервалом 5 с между изменениями. Для этого я использовал jQuery.Timer, который использует setInterval () для вызова некоторой функции show_next_image () каждые 5 секунд.
Он действительно работает с IE, Opera, Safara, Firefox и ... частично с Google Chrome. Это не работает с Google Chrome, если я открою новое окно и напрямую наберу URL своего сайта: он покажет второе изображение и остановится. И в любой другой ситуации (перезагрузите, из другой ссылки, не сразу после открытия нового окна) это будет плохо работать: можно увидеть заднее изображение до того, как будет показано переднее изображение.
Таким образом, мне интересно, сделал ли я что-то не так с моим источником JavaScript. То, что я делаю, я использую переднее и заднее изображение. Когда я хочу показать следующее изображение, задний источник img устанавливается на новое изображение, а переднее изображение исчезает, а заднее изображение - через jQuery. Вы можете проверить это в http://www.laurent -carbon.com / (на французском языке). Два img отождествляются с bg1 и bg2.
var images = ["/img/IMG_0435bg.jpg", "/img/IMG_0400bg.jpg", "/img/maisonnette 2.jpg", "/img/IMG_0383bg.jpg", "/img/IMG_0409bg.jpg", "/img/IMG_0384bg.jpg"];
var idx = 1;
var waitTime = 5000; // ms
$(document).ready(function() {
$("#bg2").hide();
$.timer(waitTime, load_next);
$.preLoadImages(images);
});
function load_next(timer) {
var toshow = images[idx];
idx++;
idx %= images.length;
back_image().attr('src', toshow);
swap_images();
}
function front_image() {
return (idx % 2 == 0) ? $("#bg1") : $("#bg2");
}
function back_image() {
return (idx % 2 == 0) ? $("#bg2") : $("#bg1");
}
function swap_images() {
back_image().fadeOut('slow');
front_image().fadeIn('slow');
}
Спасибо,
Ceylo