淡入/淡出function的连续循环
我有以下函数,我想在一个连续循环上运行,我认为这对我有用,但不是这样,因为该函数只运行一次。 我不确定问题是否与方法,间隔或我的代码有关。 我对此很新。
var c = $(".test p").length; setInterval(faderepeat(c),20000); function faderepeat(c){ var i = 0; while (i<=c) { var p = $(".para"); ($(p[i]).delay(i*3000).fadeIn(2000).fadeOut(1000)); i++; } }
将setInterval调用更改为:
setInterval( function() { faderepeat(c); }, 20000);
您调用它的方式,该函数运行一次,setInterval重复调用该函数的结果。
setInterval( function() { faderepeat(c); }, 20000); // this will fix your looping issue function faderepeat(c){ var i = 0; while (i<=c) { var p = $(".para"); ($(p[i]).delay(i*3000).fadeIn(2000,function() { $(this).fadeOut(1000)); // using the callback version of this method is much cleaner }); i++; } }
问题可能是这一行:
setInterval(faderepeat(c),20000);
你不能用这种方式将参数传递给回调函数,试试这个:
setInterval(faderepeat,20000); function faderepeat(){ var c = $(".test p").length; var i = 0; while (i<=c) { var p = $(".para"); ($(p[i]).delay(i*3000).fadeIn(2000).fadeOut(1000)); i++; } }
将var c =$(".test p").length
到faderepeat
以始终获取最新值 。