只需跟进this thread,
我正在使用以下代码上下移动图片:
icon.style.top = top-50 + "px";
setTimeout ( function() { icon.style.top = top + "px"; }, 200) ;
现在我想实施更多中间职位。这个想法是为了诱导翻译效果。我试图堆叠setTimeout行,但没有工作。
我现在正在阅读有关clearTimeout的一些内容,但可能你的帮助会让它更好用。谢谢!
答案 0 :(得分:2)
如果需要,您可以“堆叠”setTimeout调用。请记住,它们立即被称为 ,并且仅在给定的毫秒参数后执行操作。
因此,如果我希望在彼此200毫秒内发生三次回调,则使用200作为参数是不正确的。第一个应该是200,然后是400,然后是600 - 或者将i * 200
分解为i
,其中var offsets = [-50,50,0,-100,100,0]; //some set of pixel offsets
var timing = 200; //the 200 millisecond argument
for(var i = 0; i < offsets.length; i++){ //loop through offsets with i
(function(i){ //close over the i value to ensure the value is saved
setTimeout( function() { //setup the timeout
icon.style.top = (top+offsets[i]) + "px"; //change the style offset
}, timing*i); //multiply the 200 milliseconds by loop counter
})(i) //close over the i value
}
是迭代器。
10 = 1010b
100 = 1100100b
1000 = 1111101000b