2008-09-30 8 views
9

Je suis à la recherche d'une méthode multi-navigateur pour détecter qu'un navigateur Web client est déplacé tout en bas (ou en haut) de l'écran.Comment puis-je détecter que le client défile en haut ou en bas d'une page Web?

Vraiment, le sommet est assez facile, comme
scrY = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop
est égal à zéro si vous êtes en haut. Le problème est que scrY semble retourner le haut de la barre de défilement, et non le bas, donc au lieu d'obtenir quelque chose d'équivalent à la hauteur du document (en pixels) je suppose que la hauteur du document est inférieure à la taille du barre de défilement.

Existe-t-il un moyen facile, par navigateur, de savoir si l'utilisateur a fait défiler vers le bas du document/de la fenêtre? Plus spécifiquement, je comprends la manipulation générale de la barre de défilement (la définir, la déplacer, etc.) mais comment puis-je obtenir le delta du bas de la position de la barre de défilement par rapport au bas de la fenêtre/du document.

Répondre

2

Une somme jusqu'à ce qui fonctionne dans 3,5 FF:

function isTop() { 
    return window.pageYOffset == 0; 
} 

function isBottom() { 
    return window.pageYOffset >= window.scrollMaxY; 
} 
+1

scrollMaxY n'est pas disponible dans Webkit – Ivan

Questions connexes