Réponses:
Ils vont tous les deux avoir le même effet .
Cependant, comme indiqué dans les commentaires: $(window).scrollTop()
est pris en charge par plus de navigateurs Web que $('html').scrollTop()
.
scrollTop
ne défile nulle part, mais renvoie simplement l'emplacement de défilement actuel.
scrollTop()
est un getter et scrollTop(value)
un setter. scrollTop()
sans arguments ne modifie pas la position de défilement.
Tout d'abord, vous devez comprendre la différence entre window
et document
. L' window
objet est un objet côté client de niveau supérieur. Il n'y a rien au-dessus de l' window
objet. JavaScript est un langage orienté objet. Vous commencez avec un objet et appliquez des méthodes à ses propriétés ou aux propriétés de ses groupes d'objets. Par exemple, l' document
objet est un objet de l' window
objet. Pour changer la document
« couleur d'arrière - plan, vous souhaitez définir le document
» s bgcolor
propriété.
window.document.bgcolor = "red"
Pour répondre à votre question, il n'y a aucune différence dans le résultat final entre window
et document
scrollTop
. Les deux donneront le même résultat.
En usage général document
principalement pour enregistrer les événements et utiliser window
pour faire des choses comme scroll
, scrollTop
et resize
.
Pour ce faire, utilisez plusieurs navigateurs
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()
renvoyez toujours 0 dans Google Chrome.
$("body").scrollTop()
est obsolète, ne fonctionne plus sur Chrome ou FF . Il reviendra 0
J'ai juste eu quelques-uns des problèmes similaires avec scrollTop
décrits ici.
En fin de compte, j'ai contourné cela sur Firefox et IE en utilisant le sélecteur$('*').scrollTop(0);
Pas parfait si vous avez des éléments que vous ne voulez pas appliquer, mais cela contourne la disparité entre les documents, le corps, le HTML et la fenêtre. Si ça aide ...
$("html,body").scrollTop(val)
- jamais eu de problèmes