私はいくつかの要素によって呼び出されるJQuery関数を定義し、スクロールするイベントリスナーを追加しました。複数のインスタンスに対して独自のJQuery関数を定義する
1つの要素だけがその関数を呼び出すとうまくいきますが、複数の要素があれば、呼び出された最後の要素に対してのみ機能します。私はいくつかのコードを追加し、より良いそれを説明してみましょう:
My機能:
jQuery.fn.extend({
objectParallax: function (speed) {
var elem = $(this);
var defaultTop = parseInt(elem.css('top'));
window.onscroll=function(){
var scrolled = $(window).scrollTop();
elem.css('top',(defaultTop-(scrolled*speed))+'px');
}
}
});
これは、基本的にはそれが何を異なる速度でいくつかの要素のスクロールをしている、非常に簡単です。
私は機能をこのように呼ん:
$(function(){
$('#floating-parallax-1').objectParallax('.5');
//$('#floating-parallax-2').objectParallax('.5');
//$('#floating-parallax-3').objectParallax('-.5');
//$('#floating-parallax-4').objectParallax('-.5');
});
ので、この場合は(^)で、それは私の#floating-parallax-1
オブジェクトのための素晴らしい作品。しかし、私は他のもののコメントを解除する場合、私の機能は、それらの最後のもののためにのみ動作します。参照:
$(function(){
$('#floating-parallax-1').objectParallax('.5');
$('#floating-parallax-2').objectParallax('.5');
$('#floating-parallax-3').objectParallax('-.5');
$('#floating-parallax-4').objectParallax('-.5');
});
ここでは、この機能は#floating-parallax-4
アイテムでのみ機能しています。
どうすればこの機能を同時に複数のインスタンスにすることができますか?
私の悪い英語のために申し訳ありません、何かが十分明確でない場合は私に尋ねてください。ご協力いただきありがとうございます!
、新しいコールバックを追加しますが、以前のものを置き換えるので、代わりにそれを置き換える新しいイベントを追加しようとしないのだろうか? – Rayon