4

簡単な問題がありますが、解決策が見つかりません... ページを上にスクロールしてその上部に「タッチ」したときに、(メソッドを実行する) イベントを起動したいだけです。ページで JavaScript と jQuery を使用しています。前もって感謝します !

4

3 に答える 3

9

その目的のためにスクロールイベントを使用する必要があります。

$(window).scroll(function() {
    if ($(this).scrollTop() == 0) {
        //Do whatever you want to do
    }
});

注意すべき点の1つは、この方法で誰かがトップにスクロールし続けると、トップがヒットしたときにのみ必要な場合でも、偶数が発生することです。このため、イベントハンドラーを関数として定義し、最後のスクロールトップ値を関数ローカル変数。

$(window).scroll(handleHitTop);

function handleHitTop(event) {
    var currentScrollTopValue = $(this).scrollTop();

    if (handleHitTop.lastTop === undefined) {
        handleHitTop.lastTop = currentScrollTopValue ;

        return;
    }

    if (handleHitTop.lastTop == 0 && currentScrollTopValue == 0) {
        return;
    }

    handleHitTop.lastTop = currentScrollTopValue;

    if (handleHitTop.lastTop == 0) {
        //Call your event here
    }
}
于 2013-02-27T22:11:44.933 に答える
9

onscroll イベントを使用します。バニラ js の例:

window.onscroll = function() {
    if(document.body.scrollTop == 0) {
        alert('yay!');
    }
}

http://jsfiddle.net/kuWuf/

于 2013-02-27T21:50:06.730 に答える
6

.scroll()ハンドラーとを使用し.scrollTop()ます。

$(window).scroll( function() {
    if($(this).scrollTop() == 0) {
        alert("Top!!!");
    }
});

http://jsfiddle.net/jtbowden/wvJ9r/

于 2013-02-27T21:50:18.210 に答える