画面上のテキストの色を変える再帰アニメーションがあります。div が可視性を失ったときにこのアニメーションを停止するメカニズムが必要です。私の実際のサイトでは、これはダイアログ ボックスにあります。ダイアログ ボックスが閉じるときにすべてのアニメーションを停止したい。使用してみ$.stop()
ましたが、再帰呼び出し中に呼び出しスタックを中断できるとは思いません。
これが私がやっていることの要点です:
JavaScript:
function rainbow() {
var hue = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')';
$('#rainbow ul li').animate({
color: hue
}, 500, rainbow);
}
$(function() {
rainbow();
$("#stop").click(function() {
$('#rainbow ul li').stop()
});
});
html
<div id="rainbow">
<ul>
<li>Apple</li>
<li>Microsoft</li>
<li>SUN</li>
</ul>
</div>
<button id="stop" type="reset">Stop</button>
</p>
停止ボタンをクリックしても何も起こらず、アニメーションは続行します。