2012-05-09 17 views
10

las siguientes obras en Chrome/FF, etc ...jQuery animar scrollTop no funciona en IE 7

$('body').animate({scrollTop : 0}, 0); 

Sin embargo, en el IE 7, que no hace nada.
¿Existe una alternativa?

+0

@ Escorpión-Prince jQuery animado absolutamente trabaja en scrollTop. Lo he usado en producción muchas veces, navegador cruzado. – benastan

+0

Ver http://stackoverflow.com/questions/2123690/jquery-animate-scroll-top-top-slow – benastan

Respuesta

21

EDITAR Como se ha señalado por muchos, es mejor utilizar:

$('body, html').animate({scrollTop : 0}, 0); 
+1

No creo que esto funcione en todos los navegadores. ''body, html'' es un mejor selector (ver otra respuesta). –

+1

Esto no funciona bien en todos los navegadores. Más bien use la otra respuesta. – Richard

+0

Sí, esto no está funcionando en IE 11 y FF – Shiljo

17
$('body, html').animate({scrollTop : 0}, 0); 
+0

'$ ('cuerpo, html')' realmente funciona! – Rockallite

4

en IE8, utilizo $(document).scrollTop() para obtener la propiedad scrollTop, $('body').scrollTop() o $('html').scrollTop() siempre devolverá 0.

Tal vez se puede utilizar

$(document).animate({scrollTop: 0}, 0); 
$('html,body').animate({scrollTop: 0}, 0); 

para que funcione en todos los navegadores.

1

Set:

# FF、IE8   
document.documentElement.scrollTop = 100; 

# chrome 
document.body.scrollTop = 100; 

Obtener:

scrollTop = document.documentElement.scrollTop + document.body.scrollTop;