¿Por qué window.scrollTop no estaría definido?
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop
La propiedad Element.scrollTop obtiene o establece el número de píxeles que el contenido de un elemento se desplaza verticalmente.
El valor scrollTop de un elemento es una medida de la distancia desde la parte superior del elemento hasta su contenido visible superior. Cuando el contenido de un elemento no genera una barra de desplazamiento vertical, su valor scrollTop es 0.
jQuery(window).on('scroll', function() { if(window.scrollTop > 0) { console.log('of the top') console.log('scroll top value is: ' + window.scrollTop) } else { console.log('the top') console.log('scroll top value is: ' + window.scrollTop) } })Todo lo que obtengo en el registro de mi consola es:
scroll top value is: undefined
y siempre obtengo una evaluación de if else:
of the top
incluso si estoy desplazado a la parte superior de la página.
¿Por qué window.scrollTop no estaría definido?
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop ¿la ventana no cuenta como un elemento?
Debe usar el identificador jQuery $ así como el paréntesis () para .scrollTop() para obtener la posición
Aquí está el código ejecutable:
<script> jQuery(window).on('scroll', function() { if($(window).scrollTop() > 0) { console.log('of the top') console.log('scroll top value is: ' + $(window).scrollTop()) } else { console.log('the top') console.log('scroll top value is: ' + $(window).scrollTop()) } }) </script><script> jQuery(window).on('scroll', function() { if($(window).scrollTop() > 0) { console.log('of the top') console.log('scroll top value is: ' + $(window).scrollTop()) } else { console.log('the top') console.log('scroll top value is: ' + $(window).scrollTop()) } }) </script>
El código de YESSINE es correcto. pero puede hacerlo simple
<script> jQuery(window).on('scroll', function() { var window = $(window); if(window.scrollTop() > 0) { console.log('of the top') console.log('scroll top value is: ' + window.scrollTop()) } else { console.log('the top') console.log('scroll top value is: ' + window.scrollTop()) } }) </script>