Kullanıcının kaydırdığını javascript'te nasıl tespit edebilirim?
scrollingiçinde onscroll. (ps: hayır, bu aynı değil)
Kullanıcının kaydırdığını javascript'te nasıl tespit edebilirim?
scrollingiçinde onscroll. (ps: hayır, bu aynı değil)
Yanıtlar:
bu çalışıyor:
window.onscroll = function (e) {
// called when the window is scrolled.
}
Düzenle:
Bunun bir TimeInterval içinde bir fonksiyon olduğunu söylediniz .. Şu şekilde
yapmayı deneyin:
userHasScrolled = false;
window.onscroll = function (e)
{
userHasScrolled = true;
}
daha sonra Interval'inizin içine şunu ekleyin:
if(userHasScrolled)
{
//do your code here
userHasScrolled = false;
}
Az önce etiketlerinizde javascript dediniz, böylece @Wampie Driessen gönderisi size yardımcı olabilir.
Ben de katkıda bulunmak istiyorum, böylece ihtiyacınız olursa jQuery'yi kullanırken aşağıdakileri kullanabilirsiniz.
//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;
});
Başka bir örnek:
$(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'yeterince iyi değil? DÜZENLEME: Boşver, 2. örneğinizi gördüm.
e.originalEvent.wheelDelta || e.originalEvent.detail?
wheelEtkinliği kullanın .
window.addEventListener("scroll",function(){
window.lastScrollTime = new Date().getTime()
});
function is_scrolling() {
return window.lastScrollTime && new Date().getTime() < window.lastScrollTime + 500
}
500'ü, kullanıcının "artık kaydırılmadığını" düşündüğünüz son kaydırma olayından sonraki milisaniye sayısına değiştirin.
( addEventListenerdaha iyidir onScrollçünkü eski kullanılan herhangi bir kodla güzelce bir arada olabilir onScroll.)
Kullanıcının kaydırıp kaydırmadığını kontrol etmek için bir aralık ayarlayabilir ve ardından buna göre bir şeyler yapabilirsiniz.
Büyük borç John Resig içinde yazısında .
Misal:
let didScroll = false;
window.onscroll = () => didScroll = true;
setInterval(() => {
if ( didScroll ) {
didScroll = false;
console.log('Someone scrolled me!')
}
}, 250);
if(scolling). Mıif(window.onscroll)aynı?