javascript - funcion - body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY
scrolltop object jquery (3)
Dado que skrollr no usa window.scrollY , esto puede haber sido obvio, pero como respuesta adicional a la pregunta original: window.pageYOffset es un alias para window.scrollY . Ver Window.scrollY .
Al tratar de averiguar cuánto se ha desplazado desde la parte superior de una página web, ¿cuál de ellas se debería usar?
document.body.scrollTop ,
document.documentElement.scrollTop ,
window.pagYOffset ,
window.scrollY
¿Cuál elegiría en estos 2 escenarios separados?
a) Si quería la máxima compatibilidad (en los principales navegadores utilizados actualmente)
b) Si quería código que fuera compatible con la mayoría de las normas / a prueba de futuro / compatible con modo estricto (¿pero no me interesaba apoyar navegadores antiguos / no estándares)?
Estoy usando tres de ellos en la fuente skrollr
return window.pageYOffset || documentElement.scrollTop || body.scrollTop || 0;
a) Hasta el momento funciona en todos los navegadores (nadie ha presentado quejas en el último año).
b) Ya que usará el primero que se define, creo que es bastante a prueba de futuro y estable.
Si eres elegante, podrías hacer esto también
Math.max(window.pageYOffset, documentElement.scrollTop, body.scrollTop)
Para la respuesta de Prinzhorn :
Como body y documentElement undefined están undefined en Chrome / Firefox, mejor uso:
return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
Probé yo mismo.