第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用戶停止?jié)L動時的事件

用戶停止?jié)L動時的事件

當(dāng)用戶滾動頁面時,我想做一些花哨的jQuery東西。但我不知道如何解決這個問題,因為只有scroll()方法。有任何想法嗎?
查看完整描述

3 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗 獲得超4個贊

下面是一個使用setTimeout在用戶停止?jié)L動時觸發(fā)函數(shù)的簡單示例:


(function() {        

    var timer;

    $(window).bind('scroll',function () {

        clearTimeout(timer);

        timer = setTimeout( refresh , 150 );

    });

    var refresh = function () { 

        // do stuff

        console.log('Stopped Scrolling'); 

    };

})();

在滾動事件觸發(fā)時清除計時器。滾動停止后,將觸發(fā)刷新功能。


或者作為插件:


$.fn.afterwards = function (event, callback, timeout) {

    var self = $(this), delay = timeout || 16;


    self.each(function () { 

        var $t = $(this);

        $t.on(event, function(){

            if ($t.data(event+'-timeout')) {

                clearTimeout($t.data(event+'-timeout'));

            }

            $t.data(event + '-timeout', setTimeout(function () { callback.apply($t); },delay));

        })

    });

    return this;

};

在div(帶命名空間)上的最后一個滾動事件的100ms之后觸發(fā)回調(diào):


$('div.mydiv').afterwards('scroll.mynamespace', function(e) {

        // do stuff when stops scrolling

        $(this).addClass('stopped');

    }, 100

);

我用它來滾動和調(diào)整大小。


查看完整回答
反對 回復(fù) 2019-08-31
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊

這是另一個基于提到的相同想法的更通用的解決方案:


var delayedExec = function(after, fn) {

    var timer;

    return function() {

        timer && clearTimeout(timer);

        timer = setTimeout(fn, after);

    };

};


var scrollStopper = delayedExec(500, function() {

    console.log('stopped it');

});


document.getElementById('box').addEventListener('scroll', scrollStopper);


查看完整回答
反對 回復(fù) 2019-08-31
  • 3 回答
  • 0 關(guān)注
  • 887 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號