Me gustaría evitar que sucedan ciertas cosas mientras se desplaza un elemento. El desplazamiento puede comenzar cuando se usa la mouse wheel o la mouse pad , pero también puede ocurrir cuando se llama a scrollIntoView() . ¿Hay alguna manera de saber si un elemento se está desplazando actualmente directamente desde ese elemento?
Aquí hay una función que lo ayuda a detectar el desplazamiento con rebote y puede comenzar a invocar cualquier función después de un temporizador establecido.
let timeOut; function debounce(delay) { console.log("It's rolling!"); clearTimeout(timeOut); timeOut= setTimeout(function(){ console.log("It's stopped!"); }, delay); } document.querySelector("#scrollable").addEventListener('scroll',(function() { debounce(200); })); div { border: 1px solid black; width: 200px; height: 100px; overflow: scroll; } <div id="scrollable">In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since. <br><br> 'Whenever you feel like criticizing anyone,' he told me, just remember that all the people in this world haven't had the advantages that you've had.'</div>