javascript - Detectează dacă utilizatorul derulează
Cum pot detecta în JavaScript dacă utilizatorul derulează?
Răspuns #1
asta funcționează:
window.onscroll = function (e) {
// called when the window is scrolled.
}
editare:
ai spus că acesta este un funcție într-un TimeInterval..
Încearcă să o faci astfel:
userHasScrolled = false;
window.onscroll = function (e)
{
userHasScrolled = true;
}
apoi în interiorul Intervalului tău inserează asta:
if(userHasScrolled)
{
//do your code here
userHasScrolled = false;
}
Răspunsul #2
Tocmai ai spus javascript în etichetele tale, deci postarea lui @Wampie Driessen te-ar putea ajuta.
Vreau să contribui și eu, așa că poți folosi următoarele atunci când folosești jQuery, dacă ai nevoie.
//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;
});
Un alt exemplu:
$(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);
});
});
Răspunsul #3
window.addEventListener("scroll",function(){
window.lastScrollTime = new Date().getTime()
});
function is_scrolling() {
return window.lastScrollTime && new Date().getTime() < window.lastScrollTime + 500
}
Schimbați 500 cu numărul de milisecunde după ultimul eveniment de derulare în care considerați că utilizatorul a încetat să mai deruleze.
(addEventListener este mai bun decât onScroll deoarece primul poate coexista armonios cu orice alt cod care folosește onScroll.)
