अगर उपयोगकर्ता स्क्रॉल कर रहा है तो मैं जावास्क्रिप्ट में कैसे पता लगा सकता हूं?
scrollingमें onscroll। (पीएस: नहीं, यह वही नहीं है)
अगर उपयोगकर्ता स्क्रॉल कर रहा है तो मैं जावास्क्रिप्ट में कैसे पता लगा सकता हूं?
scrollingमें onscroll। (पीएस: नहीं, यह वही नहीं है)
जवाबों:
यह काम:
window.onscroll = function (e) {
// called when the window is scrolled.
}
संपादित करें:
आपने कहा कि यह एक TimeInterval में एक फ़ंक्शन है ..
इसे इस तरह से करने का प्रयास करें:
userHasScrolled = false;
window.onscroll = function (e)
{
userHasScrolled = true;
}
फिर अपने अंतराल के अंदर यह डालें:
if(userHasScrolled)
{
//do your code here
userHasScrolled = false;
}
आपने सिर्फ अपने टैग्स में जावास्क्रिप्ट कहा है, इसलिए @Wampie Driessen पोस्ट आपकी मदद कर सकती है।
मैं भी योगदान करना चाहता हूं, इसलिए यदि आपको आवश्यकता हो तो आप jQuery का उपयोग करते हुए निम्नलिखित का उपयोग कर सकते हैं।
//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;
});
एक और उदाहरण:
$(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'यह पर्याप्त नहीं है? संपादित करें: कोई बात नहीं, मैंने आपका दूसरा उदाहरण देखा।
e.originalEvent.wheelDelta || e.originalEvent.detail?
wheelघटना का उपयोग करें ।
window.addEventListener("scroll",function(){
window.lastScrollTime = new Date().getTime()
});
function is_scrolling() {
return window.lastScrollTime && new Date().getTime() < window.lastScrollTime + 500
}
अंतिम स्क्रॉल ईवेंट के बाद 500 मिलीसेकंड की संख्या में परिवर्तन करें, जिस पर आप उपयोगकर्ता को "अब स्क्रॉल नहीं करना" मानते हैं।
(इससे addEventListenerबेहतर है onScrollक्योंकि पूर्व उपयोग करने वाले किसी अन्य कोड के साथ अच्छी तरह से जुड़ सकता है onScroll।)
यदि आप उपयोगकर्ता को स्क्रॉल कर चुके हैं तो आप एक अंतराल सेट कर सकते हैं, फिर उसके अनुसार कुछ करें।
अपने लेख में महान जॉन रेजिग से उधार लेना ।
उदाहरण:
let didScroll = false;
window.onscroll = () => didScroll = true;
setInterval(() => {
if ( didScroll ) {
didScroll = false;
console.log('Someone scrolled me!')
}
}, 250);
if(scolling)। हैif(window.onscroll)ही?