我有一个递归动画来使屏幕上的文本改变颜色。当 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>
单击停止按钮不执行任何操作,动画继续。