2009-07-19 19 views
13

Estoy confundido acerca de scrollTop().
jQuery dice que debería mostrar un número que representa el desplazamiento scrollTop para un elemento dado, pero como lo hace en mi propio script, en su demostración devuelve "0".¿Cómo se supone que scrollTop en JQuery funciona?

Configurar el scrollTop manualmente funciona muy bien, al igual que con el comando $(window).scrollTop().

¿scrollTop() SÓLO devuelve valores asociados con elementos que a su vez contienen barras de desplazamiento (como un elemento con una propiedad CSS de overflow:scroll)?

Respuesta

26

Solo se deduce que los elementos con barras de desplazamiento en posiciones distintas a la superior tendrían un scrollTop de> 0. Si tiene un elemento sin barras de desplazamiento, entonces uno esperaría que su posición scrollTop sea 0 ya que no tienen dónde desplazarse.

No estoy exactamente seguro de cuál es el problema.

EDIT: Sólo en caso de que no se explica adecuadamente en la documentación de jQuery:

scrollTop() => posición de la barra de desplazamiento para el elemento (ventana/div/nada desplazable)

$("#element").offset().top => posición del elemento relativo a la página

$("#element").offset().top - $(window).scrollTop() => posición del elemento relativo al área desplazada.

+8

Por lo tanto, para un uso común para desplazarse por la ventana para que aparezca el elemento # (queda) en la parte inferior de la ventana, use: $ (ventana) .scrollTop ($ ('# element'). Offset(). Arriba); – scaganoff

Cuestiones relacionadas