Búsqueda de sitios web

javascript - Mostrar la posición de desplazamiento en la consola


Estoy tratando de mostrar la posición del desplazamiento, pero mi solución no parece funcionar como se espera. ¿Qué estoy haciendo mal?

$(document).ready(function() {
    var tempScrollTop = $(window).scrollTop();
    function example() {
        console.log("Scroll from Top: " + tempScrollTop.toString());
    };
});
<body>      
    <p>some text</p>
    <!-- there are many <p> elements -->
    <p>some text</p>        
</body>

Cada vez que desplazo hacia arriba o hacia abajo, el script no se muestra en la consola.

Respuesta #1

Primero, nunca llamas a la función example(), por lo que nunca se ejecutará. Necesitas llamar a la función example() bajo el evento scroll del elemento requerido. En segundo lugar, necesitas actualizar el valor de la variable tempScrollTop dentro de la función. Intenta esto:

$(window).scroll(example);

function example() {
  var tempScrollTop = $(window).scrollTop();
  console.log("Scroll from Top: " + tempScrollTop.toString());
};
html, body {
  height: 2000px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Respuesta #2

Puedes verificar tu valor de scrollTop desplazándote dentro del elemento div para mostrar el número de píxeles que el contenido del div se ha desplazado hacia arriba

function myFunction() {
    var elmnt = document.getElementById("myDIV");
    var y = elmnt.scrollTop;
    document.getElementById ("demo").innerHTML = "Scrolled Top: " + y + "px";
}
#myDIV {
    height: 100px;
    width: 250px;
    overflow: auto;
}

#content {
    height: 800px;
    width: 200px;
    background-color: coral;
}
<p>Scroll inside the div element to display the number of pixels the content of div is scrolled top</p>

<div id="myDIV" onscroll="myFunction()">
  <div id="content">Scroll inside me!</div>
</div>

<p id="demo"></p>