0

ページのスクロール位置に応じて、いくつかの条件付きイベントがあります。一度だけ起動する必要がある最後のイベントを除いて、すべてうまくいきます。これが私のコードです:

function curScroll() {      
    var scrollX = $(window).scrollTop();
    var pointA = $('#pointA').offset().top;
    var pointB = $('#pointB').offset().top;

    if (scrollX < pointA) {
        $('#something').removeClass('middle').addClass('top');  
    } else if ((scrollX >= pointA) && (scrollX < pointB)) {
        $('#something').addClass('middle').removeClass('top');
    } else if (scrollX >= pointB) {
        $('#something').removeClass('middle top');
        // DO SOMETHING JUST ONCE, NOT EVERY TIME USER SCROLLS TO THE POINT
    }
}

one() 関数がその方法だと思います。問題は、必須の「イベント」パラメーターです。

ユーザーがpointBにスクロールするたびに起動するカスタムtrigger()をアタッチする必要がありますか? 別の方法はありますか?

あなたのアイデアをありがとう!

4

1 に答える 1

1

いつ完了したかを示すフラグを追加するのはどうですか?

// DO SOMETHING JUST ONCE, NOT EVERY TIME USER SCROLL TO THE POINT
if (!('doneIt' in curScroll)) {
  curScroll.doneIt = true;
  // ...do stuff...
}
于 2013-08-13T20:05:46.973 に答える