2016-01-04 97 views
-1

我可以使用JS或jQuery檢測滾動移動嗎?檢測滾動

我想隱藏一個div只有當用戶滾動,當他停止滾動div顯示。

我想:

window.onscroll(function() { 
 
    $('.footerGeral').hide(); 
 
});

但是它不工作。

+0

檢查了這一點 - > http://stackoverflow.com/questions/5515551/how-to-call-a-function-after-scroll-has-ended <--- – Help

回答

0

您是差不多吧,但它是.scroll()

$(window).scroll(function() { 
    $('.footerGeral').hide(); 
}); 

可以在純JavaScript做到這一點,是這樣的:

window.onscroll = function() { 
    document.querySelectorAll(".footerGeral")[0].style.display = 'none'; 
} 

注:這隻有你有內容,這不僅僅是觀點。帶滾動條的頁面。

+0

這將如何處理在滾動結束時顯示div? –

+0

@ A.T。啊...我不確定。勒梅想到了一種方法。 –

+2

也許這有助於 - > http://stackoverflow.com/questions/3701311/event-when-user-stops-scrolling – naoxink

0

首先:它只有在你實際上有溢出內容(帶滾動條)時纔有效。如果您只是滾動,您將無法獲得該活動。

其次,本地語法是:

window.onscroll = function() { 
    // Your code 
}; 

jQuery的做法是:

$(window).scroll(function() { 
    // Your code 
}); 
1

您可能需要使用scroll事件,像這樣:

window.addEventListener('scroll', function(evt) {}); 

現在您可以檢測用戶使用evt.deltaX和滾動的像素數,或用document.body.scrollTopdocument.body.scrollLeft完全滾動了多少。

0

您可以輕鬆地將Ben Alman的JQuery scroll()debounce()jquery.ba-throttle-debounce.js組合起來。

$(window).scroll($.debounce(250, true, function(){ 
    $('.footerGeral').hide(); //scrolling or scrolling stopped for less than 250 ms 
})); 
$(window).scroll($.debounce(250, function(){ 
    $('.footerGeral').show(); //scrolling stopped for more than 250 ms 
}));