2013-10-10 4 views
1

У меня есть этот код js, который должен сделать высоту панели больше при загрузке моей страницы. Но, похоже, это слишком быстро загружается.window.settimeout в javascript слишком быстро загружается

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(); 
    } 
} 

ответ

2

1st thing - ваши функции выполняются немедленно, поэтому вам нужно поместить их в другую функцию.

Еще одна вещь - все ваших таймаутов заканчиваются в то же время!

попробовать что-то вроде этого:

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/

+0

большое спасибо это работало красиво !! –

+0

С удовольствием помогите @Jacques :-) – Neal

Смежные вопросы