【发布时间】:2014-03-12 15:30:10
【问题描述】:
这是它完美运行一次的代码,但 setInterval 不会重复第二次,或者假设其他连续时间,这就是我想要的,例如当它到达数组的最后一个位置时返回以此类推,谁能帮助我,我非常感激。
CSS:
#ok{position:absolute}
HTML:
<div id="ok">ok</div>
脚本:
var a=[b(),c(),d()];
function b(){
for (var i=0;i<700000;i++){document.getElementById("ok").style.left=(i)+"px";}
alert(i);
};
function c(){
for (var i=0;i<20;i++){document.getElementById("ok").style.left=(i)+"px";};
alert(i);
}
function d(){
for (var i=0;i<5;i++){document.getElementById("ok").style.left=(i)+"px";alert(i)};
};
for(var i=0;i<a.length;i++){
setInterval(function(){a[i];if(i==a.length-1){i=0;};},1000);
}
演示: jsfiddle
【问题讨论】:
-
你怎么知道它没有运行多次?在间隔中放置一个日志。 (还有闭环问题)。
-
我向你保证,setInterval 是连续运行的。你误解了结果。您实际上正在做的是立即在顶部执行 a() b() 和 c() ,然后不再执行它们。不幸的是,我认为你的代码无论如何都不会做你想做的事情,因为 for 循环通常在浏览器渲染更新之前开始和结束,所以我认为没有理由修复它。
标签: javascript css for-loop styles setinterval