¿Cómo puedo detectar en javascript si el usuario se desplaza?
scrollingen el onscroll. (PD: no, eso no es lo mismo)
¿Cómo puedo detectar en javascript si el usuario se desplaza?
scrollingen el onscroll. (PD: no, eso no es lo mismo)
Respuestas:
esto funciona:
window.onscroll = function (e) {
// called when the window is scrolled.
}
editar:
dijiste que esta es una función en un TimeInterval ..
Intenta hacerlo así:
userHasScrolled = false;
window.onscroll = function (e)
{
userHasScrolled = true;
}
luego, dentro de su intervalo, inserte esto:
if(userHasScrolled)
{
//do your code here
userHasScrolled = false;
}
Acabas de decir javascript en tus etiquetas, por lo que la publicación de @Wampie Driessen podría ayudarte.
También quiero contribuir, por lo que puede usar lo siguiente cuando use jQuery si lo necesita.
//Firefox
$('#elem').bind('DOMMouseScroll', function(e){
if(e.detail > 0) {
//scroll down
console.log('Down');
}else {
//scroll up
console.log('Up');
}
//prevent page fom scrolling
return false;
});
//IE, Opera, Safari
$('#elem').bind('mousewheel', function(e){
if(e.wheelDelta< 0) {
//scroll down
console.log('Down');
}else {
//scroll up
console.log('Up');
}
//prevent page fom scrolling
return false;
});
Otro ejemplo:
$(function(){
var _top = $(window).scrollTop();
var _direction;
$(window).scroll(function(){
var _cur_top = $(window).scrollTop();
if(_top < _cur_top)
{
_direction = 'down';
}
else
{
_direction = 'up';
}
_top = _cur_top;
console.log(_direction);
});
});
$('#elem').bind('scroll'No es lo suficientemente bueno? EDITAR: No importa, vi tu segundo ejemplo.
e.originalEvent.wheelDelta || e.originalEvent.detail?
wheelevento.
window.addEventListener("scroll",function(){
window.lastScrollTime = new Date().getTime()
});
function is_scrolling() {
return window.lastScrollTime && new Date().getTime() < window.lastScrollTime + 500
}
Cambie 500 a la cantidad de milisegundos después del último evento de desplazamiento en el que considera que el usuario "ya no se desplaza".
( addEventListeneres mejor que onScrollporque el primero puede coexistir muy bien con cualquier otro código que se use onScroll).
Puede configurar un intervalo para seguir comprobando si el usuario se ha desplazado y luego hacer algo en consecuencia.
Tomando prestado del gran John Resig en su artículo .
Ejemplo:
let didScroll = false;
window.onscroll = () => didScroll = true;
setInterval(() => {
if ( didScroll ) {
didScroll = false;
console.log('Someone scrolled me!')
}
}, 250);
if(scolling). Esif(window.onscroll)lo mismo?