1

Skrollr は素晴らしいプラグインで、たくさんのオプションがありますが、スクロール位置が最後のキーフレームの後にあるときに関数を渡す方法があるかどうかはよくわかりません。たとえば、このfiddleを見てください。

上位 100 ピクセルをスクロールすると、scrollable-betweenクラスが で変わりますscrollable-after。同様に、関数を渡したいと思います(例:スクロール位置が最後のキーフレームの後にある場合)。

どうすればそれを達成できますか?

4

1 に答える 1

6

オプションを使用する必要がありrenderます。次のようなもの:

var box = $('#box'),
    boxDone = false;
skrollr.init({
    forceHeight: false,
    smoothScrolling: false,
    render: function() {
        if ( box.hasClass('skrollable-after') ) {
            if ( ! boxDone ) {
                boxDone = true;
               // do stuff
            }
        } else if ( boxDone ) {
            boxDone = false;
        }
    }
});

必ずしも変数を持つ必要はありませんが、boxDone変数が複数回実行されるのを防ぎます。その変数をリセットしないことで、一度だけ発生させることもできます。

フィドル

また、そこで行うことはすべて非常に高速に実行する必要があることを確認する必要があることにも言及する必要があります。そうしないと、すべてのスムーズな動きが遅くなるリスクがあります。を使用することでそれを回避できるかもしれませんがsetTimeout、私はそれでテストを行っていません。

于 2013-12-03T15:29:58.180 に答える