Skrollr は素晴らしいプラグインで、たくさんのオプションがありますが、スクロール位置が最後のキーフレームの後にあるときに関数を渡す方法があるかどうかはよくわかりません。たとえば、このfiddleを見てください。
上位 100 ピクセルをスクロールすると、scrollable-between
クラスが で変わりますscrollable-after
。同様に、関数を渡したいと思います(例:スクロール位置が最後のキーフレームの後にある場合)。
どうすればそれを達成できますか?
Skrollr は素晴らしいプラグインで、たくさんのオプションがありますが、スクロール位置が最後のキーフレームの後にあるときに関数を渡す方法があるかどうかはよくわかりません。たとえば、このfiddleを見てください。
上位 100 ピクセルをスクロールすると、scrollable-between
クラスが で変わりますscrollable-after
。同様に、関数を渡したいと思います(例:スクロール位置が最後のキーフレームの後にある場合)。
どうすればそれを達成できますか?
オプションを使用する必要があり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
、私はそれでテストを行っていません。