スクロール イベントの条件を使用して、DOM のいくつかの要素をアニメーション化しようとすると、問題が発生します。まず、Drupal 7 を使用しているため、使用している jQuery ライブラリはバージョン 1.4.4 です。
ここで、ページ内の要素の css プロパティを変更して、ページがスクロールダウンしたときにヘッダーのサイズを縮小したいと考えています。
まず、スクロール イベントで、ウィンドウの scrollTop の位置を確認します。位置が 0 以外の場合 (ページが下にスクロールされていることを意味します)、ヘッダー内の要素でアニメーションをトリガーします。
位置がゼロの場合は、css プロパティを元の状態に戻して、ヘッダーがフル サイズを取得するようにします。
アニメーションの最初の部分は問題なく動作します。ページを下にスクロールすると、ヘッダーが期待どおりに縮小されます。しかし、ページを一番上までスクロールすると、2 番目のアニメーションが機能しません。アニメーションはすべてバグがあり、数秒後に発生し、乱暴になり、関数の影響を受ける css プロパティを前後に変更しanimate()
ます。
誰もこれをクリアする方法の手がかりを持っていますか??
私が使用しているコードの簡略化された部分は次のとおりです。
$(window).scroll(function(){
if($(window).scrollTop() != 0){
$('#myFirstElement').animate({marginTop: '20px'}, 300);
$('#mySecondElement').animate({top: '20px'}, 300);
}
else {
$('#myFirstElement').animate({marginTop: '32px'}, 300);
$('#mySecondElement').animate({top: '32px'}, 300);
}
});