サイトに視差スクロール効果を実装しようとしています ( Smashing Magazineのこのチュートリアルを使用)。視差効果は正常に機能していますが、特定のポイントに達したときにスプライトの 1 つがスクロールを停止するようにする必要があります。デフォルトでは、表示されなくなるまでスクロールし続けます。
視差効果は、要素の背景位置をアニメーション化することによって機能します。このコードを使用して動的な背景位置を取得しようとしています:
jQuery(function($) {
var elem = $("#heart-box");
var backgroundPos = $(elem).css("backgroundPosition").split(" ");
var xPos = backgroundPos[0],
yPos = backgroundPos[1];
$(window).scroll(function() {
console.log(yPos);
if ( yPos >= 210 ) {
$(elem).hide();
}
});
});
代わりに、CSS で定義されているように、開始位置だけが返され、ページがスクロールされたときにコンソール ログで変更されません。
ページがスクロールされると、背景の Y 位置が動的に変更されます。その範囲は、開始時に約 -200px から終了時に 400px までです。背景の Y 位置が 210px に達したら、要素の背景位置を 210px に固定し、スクロールし続けないようにします。
どんな助けでも素晴らしいでしょう。ありがとう。