编辑:创建了一个显示问题https://jsfiddle.net/MichaelCaley/wcoba1jy/
的小提琴下面的代码在每个淡入淡出之间创建一个7秒的暂停,直到我们到达代码重新运行的末尾。由于某种原因,这种延迟变为14/15秒。
我已经做了很多搜索但是想出了特朗普,所以任何帮助都会受到赞赏。
var imgshow = function(){
$(".img1").delay(7000).fadeOut(1500, function(){
$(".img2").delay(7000).fadeOut(1500, function(){
$(".img1").delay(7000).fadeIn(1500, function(){
$(".img2").delay(7000).fadeIn(1500, function(){
imgshow();
});
});
});
});
}
imgshow();
答案 0 :(得分:0)
它实际上是按编码运行的(但可能不像你想象的那样:-))。发生的事情是第二个fadeIn
(视觉上)没有效果,因为img2在img1(完全不透明)下,导致img1保持两倍的长度。
希望以下内容清楚 - 1表示完全不透明,0表示完全透明
如果你换掉最后的2 fadeIn
,你会得到每个间隔(https://jsfiddle.net/xx303tdc/)改变颜色的东西,但序列将是img1,img2,img3,img2,img1 .. 。否则你可以在img1 fadeIn
之后将img2设置为完全可见,然后重新启动循环。
在任何情况下,因为你正在进行递归调用,你最终会耗尽堆栈空间(由于延迟而非常缓慢),所以重构使用CSS转换可能是个好主意。