2011-07-18 32 views
9

¿Alguien tiene alguna idea de por qué scrollTop no funciona en IE?ScrollTop no funciona en IE

Funciona bien en Chrome, y no sé acerca de Firefox. (La idea de este guión es tener una página de desplazamiento automático que restablece una vez que golpea la parte inferior de la página)

function getheight() { 

       var myWidth = 0, 
      myHeight = 0; 
      if (typeof (window.innerWidth) == 'number') { 
        //Non-IE 
        myWidth = window.innerWidth; 
        myHeight = window.innerHeight; 
       } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
        //IE 6+ in 'standards compliant mode' 
        myWidth = document.documentElement.clientWidth; 
        myHeight = document.documentElement.clientHeight; 
       } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 
        //IE 4 compatible 
        myWidth = document.body.clientWidth; 
        myHeight = document.body.clientHeight; 
       } 
       var scrolledtonum = window.pageYOffset + myHeight + 2; 
       var heightofbody = document.body.offsetHeight; 
       if (scrolledtonum >= heightofbody) { 
        document.body.scrollTop(0, 0); 
       } 
      } 

      window.onscroll = getheight; 

      function func() { 
       window.document.body.scrollTop++; 
      } 

      window.document.onmouseover = function() { 
       clearInterval(interval); 
      }; 

      window.document.onmouseout = function() { 
       interval = setInterval(func, 20); 
      }; 

      var interval = setInterval(func, 20); 

Respuesta

19

Probar:

document.documentElement.scrollTop = x // where x is some integer 
2

La razón este tipo de cosas no funcionan en uno navegador u otra es por lo general debido a algo como:

window.document.body.scrollTop++; 

no se puede hacer eso porque algunos navegadores tienen ese valor como una cadena, por ejemplo, "5px" y algunos lo tienen como un número.

+0

gracias tipo, para la reducción de problema a este. – ClassyPimp

5

probar este

window.scroll (0,0) // eje x, eje y

+1

Funcionó para mí en IE8 –

+1

Trabajó en IE9 .. –

+0

Cómo animarlo o hacerlo ir lento –