Я схожу с ума, пытаясь понять это. На главной странице моего сайта у меня есть слайдер, который в настоящее время имеет четыре элемента (HTML создается динамически, поэтому это решение должно работать для любого количества элементов). Эти предметы расположены абсолютно друг над другом. Скрипт может делать две вещи:
1) При щелчке на элементе слайдера-навигации (который является якорной ссылкой) текущий элемент навигации исчезает, а новый - (перекрещивается).
2) Если пользователь не нажимает какие-либо элементы навигации, ползунок автоматически переходит к следующему элементу.
Моя проблема возникает только в Chrome, когда я пытаюсь использовать setInterval. Когда я делаю это, перекрестное затухание не работает, и исходящий контейнер исчезает до белого цвета, и затем появляется контейнер, входящий просто внезапно (без затухания).
Вот мой код. Надеюсь на некоторые идеи, потому что я все перепробовал!
jQuery(document).ready(function() {
jQuery('.slider-item:first').show();
jQuery('.slider-nav-item').click(function () {
if (!jQuery(this).hasClass("activeSlide")) {
clearInterval(s);
s = setInterval ( "nextSlide()", 6000 );
currentSlider = jQuery(this).attr("rel");
jQuery('#slider .slider-item').fadeOut(1200);
jQuery('#slider .slider-item:nth-child('+ currentSlider+')').fadeIn(1200);
jQuery('.slider-nav-item').removeClass("activeSlide");
jQuery(this).addClass("activeSlide");
}
return false;
});
var s = setInterval ( "nextSlide()", 6000 );
});
function nextSlide (){
var max = jQuery('#slider-nav .slider-nav-item').length;
var currentSlider = jQuery('.activeSlide').attr("rel");
if (currentSlider == max) {
jQuery('#slider .slider-item:nth-child('+currentSlider+')').fadeOut(1200);
jQuery('#slider .slider-item:first').fadeIn(1200);
jQuery('.slider-nav-item').removeClass("activeSlide");
jQuery('.slider-nav-item:first').addClass("activeSlide");
} else {
var temp = parseInt(currentSlider) + 1;
jQuery('#slider .slider-item:nth-child('+currentSlider+')').fadeOut(1200);
jQuery('#slider .slider-item:nth-child('+temp+')').fadeIn(1200);
jQuery('.slider-nav-item').removeClass("activeSlide");
jQuery('#slider-nav .slider-nav-item:nth-child('+temp+')').addClass("activeSlide");
}
}