setInterval不重复我的代码,但它运行一次,我想知道为什么
setInterval isn't repeating my code, but it runs once, I wonder why?
这是代码,它完美地运行一次,但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
您的代码有几个问题。首先,您立即执行b() c()和d(),而不是每个间隔执行一次。此外,b() c()和d()不会产生任何动画,因此for循环是完全没有意义的。那么,就不需要在末尾包装间隔的for循环了。
http://jsfiddle.net/EBhKp/1/var a = [b, c, d];
function b() {
document.getElementById("ok").style.left = 700000 + "px";
console.log(700000);
}
function c() {
document.getElementById("ok").style.left = 20 + "px";
console.log(20);
}
function d() {
document.getElementById("ok").style.left = 5 + "px";
console.log(5);
}
var i = 0;
setInterval(function () {
a[i]();
i++;
if (i == a.length) {
i = 0;
}
}, 1000);
一个基本的css过渡将添加动画:
http://jsfiddle.net/EBhKp/2/这里是简化的:
var a = [700000, 20, 5];
function setLeftStyle(position) {
document.getElementById("ok").style.left = position + "px";
console.log(position);
}
var i = 0;
setInterval(function () {
setLeftStyle(a[i]);
i++;
if (i == a.length) {
i = 0;
}
}, 1000);
在使用函数时必须指定参数,而不能使用局部变量i。
而且,像这样使用函数指针:
var a = [ b, c, d ];
相关文章:
- 为什么我的ajax在提交用@HtmlRenderPartial加载的表单时只调用fire一次
- 为什么我的$watch只烧过一次
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 为什么只打印一次?请给我解决方案
- JS:.apply(null,arguments)——为什么我的函数被调用一次,而console.log被调用多次
- 为什么这个 JavaScript switch 语句(在 for 循环内)保留了上一次迭代的值
- 为什么AS3 navigationToURL()只运行一次
- 为什么PHP一次发送所有内容
- 为什么我的引导工具提示的标题只会随着jQuery中的keydown事件而更改一次
- 为什么克隆只克隆一次项目
- 为什么我的代码可以在chrome上工作,而不是一次使用cordova编译
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- Angular 1.5.0 - 为什么工厂只调用一次
- 为什么这个简单的.js在一次迭代后循环停止
- 为什么 waitForKeyElements() 只触发一次,尽管后来进行了更改
- 允许用户添加表单输入字段:为什么 append() 只工作一次
- 为什么 JavaScript 函数只运行一次
- 为什么 console.log() 被调用两次而不是一次
- 在JS中交换id's -这只工作一次.为什么
- 滑块只滑动一次-为什么