3

間隔を使用して 5 秒ごとにバウンスする div があります。

ページの一番下までスクロールすると、この div がフェードアウトし、間隔がクリアされます。

ただし、間隔が複数回作成され、重複するという問題があると思います。

間隔が設定されているかどうかを確認し、そうであればクリアし、そうでなければ設定する方法はありますか?

間隔をクリアする必要があるのは、jquery のバウンス効果により、div が非表示になっていても再び表示されるためです。

JSBIN: http://jsbin.com/ijuhok/4/

4

4 に答える 4

4

スクロールするたびに間隔を設定しているようです。したがって、下にスクロールしてからもう一度下にスクロールすると、2回設定されます。

設定するたびに事前にクリアするだけで問題ありません。

http://jsbin.com/ijuhok/6

于 2011-10-31T15:58:14.823 に答える
4

どこからでもクリアできるように、既存の間隔を上書きする必要があります: http://jsbin.com/ijuhok/5/

$j("#more").fadeIn('slow',function(){
    ResInterval = window.setInterval(bounceMore, 5000);
    // no "var"
});

$(document).readyいつでも利用できるため、 forをなくすことができwindowます。

于 2011-10-31T15:58:35.580 に答える
1

あなたの問題は、ResIntervalあなたが使用したので、あなたがローカルスコープで定義しているということですvar

$j("#more").fadeIn('slow',function(){
   var ResInterval = window.setInterval('bounceMore()', 5000);
});

プレフィックスを削除するvarと、コードは期待どおりに機能します。現在、ResIntervalはのコールバック関数のローカル変数ですfadeIn。省略した場合var、間隔は最も近いResInterval宣言に割り当てられます(を使用var)。

于 2011-10-31T16:00:02.487 に答える