0

.animatejQuery無限ループ ブレーク メソッドの解決策に興味があります。

$(element).mouseover(function() {
   $(this).animate({ opacity: 1 }, duration, customFunc);
}).mouseout(function() {

});

そして問題は、このループをどのように断ち切るかです。例えばmouseoutイベント内?

私はそれを簡単に行うことができますがsetInterval、関数clearIntervalでそれを行う方法はあり.animateますか?

4

3 に答える 3

4

.stop メソッドを使用します。

http://api.jquery.com/stop/

現在実行中のアニメーションをすぐに停止したいと思いますか?

$(element).mouseover(function() {
   $(this).animate({ opacity: 1 }, duration, customFunc);
}).mouseout(function() {
   $(this).stop();
});
于 2012-04-17T22:53:08.013 に答える
1

.stop() を使用してアニメーションを停止できます

http://api.jquery.com/stop/

.stop(true, true) を使用してキューをクリアし、アニメーションの最後にジャンプしたい場合があります

.data() を使用して、もうアニメーション化する必要があるかどうかのフラグを保存できます

http://api.jquery.com/jQuery.data/

animate を再度呼び出す前に、customFunc に IF を追加して、アニメーション化する必要があるかどうかのフラグを確認します。そうすれば、他のコールバックが原因で再起動することはありません。マウスオーバーで、フラグを再度有効に設定する必要があります。

于 2012-04-17T22:54:02.933 に答える
0

あなたが経験しているのは、マウスが要素に出入りするときにアニメーションがキューに入れられ、マウスが要素を離れて戻ってこなかった後もアニメーションを何度も繰り返し続けるという効果である場合は、jquery hoverflow をお勧めしますあなたのためのプラグイン。

http://www.2meter3.de/code/hoverFlow/

于 2012-04-18T10:37:55.007 に答える