我有这个js代码,必须使面板的高度在我的页面负载上更大。但它似乎装得太快了。
var TimerID;
function LoadDoc() {
for(i=0;i<=100;i++){
TimerID=window.setTimeout(MoveRolldownDown(i),5000);
}
}
function MoveRolldownDown(i){
document.getElementById('Rolldown').style.height=i + '%';
window.clearTimeout(TimerID);
}这将几乎立即加载到页面中,因此如何使加载更慢。在我的HTML页面顶部,我有以下代码
document.onreadystatechange = function () {
if(document.readyState === "complete"){
LoadDoc();
}
} 发布于 2013-10-10 14:08:51
第一件事--你的函数会立即执行,所以你需要把它们放到另一个函数中。
还有一件事-- 所有超时的基本上是同时结束的!
试着做这样的事情:
function LoadDoc() {
for (i = 0; i <= 100; i++) {
var down = i;
setTimeout((function (down) {
return function(){ //return function for timeout
MoveRolldownDown(down);
};
})(i), 10 * i);
}
}
function MoveRolldownDown(i) {
document.getElementById('Rolldown').style.height = i + '%';
}演示:http://jsfiddle.net/maniator/RTaZh/
发布于 2013-10-10 14:02:54
是的,因为你是在参数中调用函数,
你可能想要的东西
window.setTimeout(MoveRolldownDown,5000, [i]);https://developer.mozilla.org/en-US/docs/Web/API/Window.setTimeout
https://stackoverflow.com/questions/19297789
复制相似问题