我编写了以下函数,希望在顶部边距上添加1px,以便为窗口滑出页面设置动画。
目前它工作正常并从页面中删除窗口,但是我在for循环的每次迭代中创建延迟间隔时遇到问题。我曾经考虑过使用setTimeout()
,但是我不能这样做; for循环我必须调用一个函数,
有什么想法吗?
function slideOut() {
var obj = document.getElementById("cInstructs");
var orig = 66;
for(i=0; i<2000; i++) {
orig++;
obj.style.marginTop = orig+"px";
}
};
提前致谢!
答案 0 :(得分:2)
建议检查jQuery .slideDown()函数 - http://api.jquery.com/slideDown/
答案 1 :(得分:0)
var i;
function incrAndDelay(i) {
setTimeout(...);
i+=1;
return i;
}
function slideOut() {
var obj = document.getElementById("cInstructs");
var orig = 66;
for(i=0; i<2000; incrAndDelay(i)) {
orig++;
obj.style.marginTop = orig+"px";
}
};
仍然需要调用函数但不能在循环体中调用。
答案 2 :(得分:0)
var intId;
function slideOut() {
clearInterval(intId);
var count = 0;
var obj = document.getElementById("cInstructs");
var orig = 66;
intId = setInterval(function(){
orig++;
obj.style.marginTop = orig+"px";
if((++count == 2000)){
clearInterval(intId);
}
}, 100);
}