我正在处理我正在处理的网站的问题。这不仅仅是这个网站,而是我用Jquery滑块制作的另一个网站。他们都有不同的插件。问题是当你改变标签时,当你回去时滑块会变得很疯狂......特别是在Chrome中。该网站是http://www.firedogpr.com/index.php。我已经读过这个问题,但我不是JS向导,所以任何帮助都将不胜感激。
出于某种原因,它目前在Windows中根本不起作用。我也在调查。
我基本上从http://www.snowdenindustries.com获取了代码并对其进行了调整。这里是可能是问题的js片段
if ($("#mainSlide").length>0) {
$("#mainSlide div.slide").hide();
$("#mainSlideNav li a:first").addClass("cur");
$("#mainSlide div.slide:first").show();
$("#mainSlideNav li a").click(function() {
$("#mainSlideNav li a").removeClass("cur");
$(this).addClass("cur");
$("#mainSlide div.slide").removeClass("cur").fadeOut(1200);
var activeTab = $(this).attr("href");
$(activeTab).fadeIn(1200).addClass("cur");
return false;
});
function slideTimer() {
if (!($('#mainSlideNav li a.cur').parent().next().children("a").length>0)) {
$("#mainSlideNav li a").removeClass("cur");
$("#mainSlide div.slide").removeClass("cur").fadeOut(1200);
$("#mainSlideNav li a:first").addClass("cur");
$("#mainSlide div.slide:first").fadeIn("slow").addClass("cur");
} else {
var nextTab = $('#mainSlideNav li a.cur').parent().next().children("a").attr('id');
var nextDiv = $('#mainSlide div.slide:visible').next().attr('id');
$("#mainSlide div.slide").removeClass("cur").fadeOut(1200);
$("#mainSlideNav li a").removeClass("cur");
$("#"+nextTab).addClass("cur");
$("#"+nextDiv).fadeIn("slow").addClass("cur");
}
}
var miniCount = setInterval( slideTimer, 5000);
$("#mainSlideNav li a, #mainHeader").mouseenter( function(){
clearInterval(miniCount);});
$("#mainSlideNav, #mainHeader").mouseleave( function(){
clearInterval(miniCount);
miniCount = setInterval(slideTimer, 5000);});
}
答案 0 :(得分:1)
jQuery文档明确表示不要使用间隔计时器中的jQuery动画API(如fadeIn),正是因为jQuery使用的API在后台标签中被暂停,所以你最终会一次运行多个淡入淡出。 / p>
至少在你正在使用的旧jQuery中;我相信当前的jQuery解决了这个问题。