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.