2010-07-07 8 views
0

J'ai un script timer qui défile vers le haut et vers le bas et repositionne la page vers le haut toutes les 10 secondes et redescend toutes les 5 secondes. Mon problème est que je n'arrive pas à le faire défiler tout le long.javascript timer page haut et bas n'ira pas au bas de la page

<script language="JavaScript" type="text/javascript"> 

// Configure refresh interval (in seconds) 
var refreshinterval=300 

// Shall the coundown be displayed inside your status bar? Say "yes" or "no" below: 
var displaycountdown="yes" 

var starttime 
var nowtime 
var reloadseconds=0 
var secondssinceloaded=0 

function starttime() { 
    starttime=new Date() 
    starttime=starttime.getTime() 
    countdown() 
} 

function countdown() { 
    nowtime= new Date() 
    nowtime=nowtime.getTime() 
    secondssinceloaded=(nowtime-starttime)/1000 
    reloadseconds=Math.round(refreshinterval-secondssinceloaded) 
    if (refreshinterval>=secondssinceloaded) { 
     var timer=setTimeout("countdown()",1000) 
     if (displaycountdown=="yes") { 
      window.status="Page refreshing in "+reloadseconds+ " seconds" 
     } 
     if (timer % 5 == 0) { 
      window.scrollTo(0,1200); 
     } 
     if (timer % 10 == 0) { 
      window.scrollTo(0,0); 
     } 

    } 
    else { 
     clearTimeout(timer) 
     window.location.reload(true) 

    } 
} 
window.onload=starttime 
</script> 

Comment puis-je la faire défiler tout le chemin vers le bas ou page vers le bas?

grâce à l'avance

Répondre

0

Je pense que cela est beaucoup plus simple et permet d'obtenir ce que vous cherchez:

function starttime() { 
    setTimeout('scrollDown()',5000); 
} 

function scrollDown() { 
    window.scrollto(0, document.body.scrollHeight); 
    setTimeout('scrollUp()',5000); 
} 

function scrollUp() { 
    window.scrollto(0,0); 
    setTimeout('scrollDown()',5000); 
} 

window.onload = starttime 
+1

vous devrez peut-être vérifier si document.body.scrollHeight existe en premier et, si ce n'est pas le cas, utilisez screen.height ... if (document.body.scrollHeight) {window.scrollto (0, document.body.scrollHeight) } else {window.scrollto (0, screen.height); } – Fosco

+0

la ligne window.scrollTo (0, document.body.scrollHeight); résolu mon problème. Merci! – phill

0

La raison pour laquelle votre page ne faites défiler la liste vers le bas est probablement avec votre pixel valeur de 1200. Cela fait défiler la page vers le bas 1200px, ce qui peut être ou ne pas être tout le chemin. Heck, votre page pourrait être 10000px haute ou plus. Essayez de définir une limite que vous pouvez sans risque savoir que votre page ne dépassera jamais, comme 20000, et qu'elle devrait aller jusqu'au fond. : D

Questions connexes