4

handleScrollウィンドウのスクロール位置が変わったときに呼び出す必要のある関数があります。これがそのためのコードです

$(window).scroll(handleScroll);

handleScrollしかし、問題は、上記のコードが頻繁に呼び出されてしまうことです。ユーザーが200ミリ秒スクロールを停止した後にのみhandleScrollが呼び出されるように、上記のコードを変更するにはどうすればよいですか?

4

2 に答える 2

2
var timeoutHandle;

$(window).scroll(function(e) {
    if (timeoutHandle) {
        clearTimeout(timeoutHandle);
    }
    timeoutHandle = setTimeout(function() {
        handleScroll(e);
        timeoutHandle = null;
    }, 200);
});
于 2012-07-25T03:38:08.900 に答える
0

underscorejsライブラリを使用すると、次のように簡単になります。

var debounceid = _.debounce(handleScroll, 200);
$(window).resize(debounceid);
于 2012-07-25T03:38:07.740 に答える