wake-up-neo.com

jQuery scrollTop () funktioniert nicht mit dem 'body'-Element in Firefox

Ich verstehe nicht, warum die JQuery-Funktion scrollTop () für das Body-Element von Firefox nicht funktioniert.

$('body').scrollTop(0);

Ich habe mein Problem behoben mit:

$(window).scrollTop(0);

Laut der Jquery-Dokumentation sollte scrollTop () jedoch mit allen Elementen wie in diesem Beispiel funktionieren:

$( "div.demo" ).scrollTop( 300 );

Ich habe auch mit 'nav' und 'main' getestet, aber es funktioniert auch nicht.

16
j3r6me

Blättern

$(window).scrollTop(0); scheint von allen Browsern IE9 + unterstützt zu werden (vielleicht IE8, aber ich teste das nicht mehr).

Animierte Schriftrolle

Wenn Sie einen Bildlauf animieren möchten, gibt jQuery einen Fehler zurück, wenn Sie das Objekt window verwenden (1.11.2 getestet). Um eine Bildlaufleiste zu animieren, sollten Sie stattdessen html und body verwenden, um Engines abzudecken, die beide verwenden. So:

$('html, body').animate({scrollTop:0},500); wird innerhalb einer halben Sekunde an den oberen Rand des Browsers verschoben.

Bildlaufposition

Sie können $('html,body').scrollTop() nicht verwenden, um die aktuelle Bildlaufposition der Seite zu ermitteln - zumindest Chrome unterstützt dies nicht (gibt immer 0 zurück). Um die Bildlaufposition einer Seite konsistent zu finden, muss $(window).scrollTop(); verwendet werden.

27
dewd

Verwenden Sie window, wenn Sie die Browser konsistent halten möchten.

$(window).scrollTop();
10
Ivan V.

versuche dies:

dein div zum scrollen:

<div id="top"></div>

und scrollen Sie nach oben js: 

$('html,body').animate({scrollTop: $('#top').offset().top},'slow');
2
wpdaniel