我使用函数调用为show div创建了这个函数,但我执行了这个函数并在show之后停止了一秒钟:
<script>
function repit_clouds(request)
{
if (request=='no')
{
stop();
}
else
{
if (request=='ok')
{
var interval = setInterval(function() {
$("#header_sun").fadeIn(4000);
$("#header_sun").fadeOut(4000);
},10000);
}
}
}
$(document).ready(function()
{
$("#header_sun").fadeIn(4000).delay(4000).fadeOut(4000);
repit_clouds('ok');
$("#header_background_clouds").fadeOut(2000).css("display","#none");
$("#header_background_night").fadeIn(2000).css("background","#000").show(4000).fadeIn(2500);
repit_clouds('no');
});
</script>
问题在于repit_clouds函数,当我发送值时,函数必须停止,但不能正常工作并继续,就好像request==ok
,我不知道为什么不停止
答案 0 :(得分:2)
stop()
的确切是什么?你的意思是:
$('#header_sun').stop()
会暂停该元素上的所有现有动画吗?
或者您是否也想停止间隔计时器:
clearInterval(interval);
当然还要求interval
在函数外部声明,以便每次调用函数时其值都不会丢失。
我还注意到,.css()
或.fadeOut()
调用不会将.show()
函数排队 - .css()
不是动画函数,因此这些更改将始终马上发生。
同样,对repit_clouds()
的两次调用也不会排队 - 如果您希望在之前的动画之后完成,那么您需要调查jQuery .queue()
函数,或在“动画完成回调”期间触发它们。