简单的jquery照片幻灯片

我想编写自己的幻灯片脚本但最终结果是它立即跳转到图像6并猛烈地闪烁(淡入淡出)…… HTML只是一个图像id =“ss1”的页面。

var i = 1; $(document).ready(function(){ slideShow(); }); var t; function runSlideShow() { if(i >= 7) i = 1; $("#ss1").fadeTo("slow",0); document.getElementById('ss1').src = "img/" + i + ".jpg"; $("#ss1").fadeTo("slow",1); i += 1; t = setTimeout(slideShow(), 5000); } 

我认为问题在于你使用

 t = setTimeout(slideShow(), 5000); 

slideShow()immidiatly再次执行slideShow()函数。 尝试将其替换为:

 t = setTimeout('slideShow()', 5000); 

代替。 请注意,虽然这使用了eval,它被认为是不安全的(虽然不是在这种情况下)并且很慢。

淡入淡出不起作用,因为淡入淡出在您的代码中异步运行,这意味着它在同时淡出时淡入(这使得一些奇怪的情况显然发生)。

 function runSlideShow() { if(i >= 7) i = 1; $("#ss1").fadeTo("slow",0, function() { document.getElementById('ss1').src = "img/" + i + ".jpg"; $("#ss1").fadeTo("slow",1, function() { i += 1; t = setTimeout('slideShow()', 5000); }); }); } 

应该管用。 由于函数(){}之间的代码现在将在淡入淡出完成后执行。