jQuery-无法停止动画和淡入淡出功能



我读了很多主题和jQuery文档,但仍然无法解决这个问题。

我有一个不透明度为0的div和一些背景色。在某个按钮的用户"点击"事件中,我调用了"StartAnimationFuncton"函数,该函数使不透明度为1的div变为1,并添加加载图像。

然后,当从服务器接收到信息时,我调用"StopAnimationFuncton"函数,该函数应该删除加载的div,然后使不透明度的背景div再次为0。

注意:在删除之前,我将延迟(1000)设置为加载,因为如果请求完成得太快,加载会显示几毫秒,看起来很难看。

//StartAnimationFuncton
$("#BackGroundDiv").stop('fx',true,false).animate({opacity:1.0},1000,function(){
$('#ShopperPortalLoadingDivContentTable').remove();
$('<div id="Loading" style="width:100%;height:100%"></div>').hide().appendTo('#BackGroundDiv').stop('fx',true,false).fadeIn(500,function(){
...
//Waiting data from the server - when the date is call the StopAnimationFunction
...
});
});
//StopAnimationFuncton
$('#Loading').stop(true,false).delay(1000).fadeOut(500,function(){
$(this).remove();
$("#BackGroundDiv").stop(true,false).animate({opacity:0.0},1000,function(){
ShopperPortal.Content.Functions.Render.InitializeRenderModeContainerAndLoadingEffects.Parameters.IsStopLoadingEffectActive=false;
});
});

我的问题是,当用户多次"点击"按钮时,当前的动画不会停止。我已经尝试了所有的变体——对每个元素组合使用stop()、stop('fx'、true、false)、stop(true、true)和stop(true、false),但没有任何帮助。

停止当前动画并完成功能的正确方法是什么?而且如果我的逻辑不正确,我会接受新的想法吗?

第1版:我使用的是jQuery 1.8.2版

EDID 2:我读到延迟(1000)可能会导致问题,因为它无法删除/取消。

Jquery.delay().fadeOut取消/清除队列。。有可能吗?怎样

http://forum.jquery.com/topic/stop-does-not-clear-delay

这就是为什么我用动画({opacity:1.0}1000)代替了它,但什么都没有改变。

如果在同一个元素上调用了多个动画方法,则稍后的动画将被放置在该元素的效果队列中。

在第一个动画完成之前,这些动画不会开始
调用.stop()时,队列中的下一个动画将立即开始。

如果为clearQueue参数提供值true,则队列中的其余动画将被删除,并且永远不会运行。

最新更新