我将代码改为$("#a1").stop().slideToggle(3000)后,发现第二次点击并没有继续原来的动画,而是向相反方向运动,请问这是为什么呢?有没有解决的方法了?
$(selector).stop(stopAll,goToEnd)
参数
描述
stopAll 可选。规定是否停止被选元素的所有加入队列的动画。
goToEnd 可选。规定是否允许完成当前的动画。该参数只能在设置了 stopAll 参数时使用。
点击运行,初始状态是绿框显示。点击按钮,绿框收缩,再次点击按钮,绿框显示
第一种:$("#a1").stop().slideToggle(3000)
第二种: $("#a1").slideToggle(3000)
两种代码执行效果相同。stop() 是停止当前正在运行的动画。单独使用stop(),会停止动画效果。
那为什么第一种可以执行呢?
点击触发请求后,标志位为false量;请求(或者包括请求后具体的业务流程处理)后,标志位为true量。通过标志位来判断用户点击是否具备应有的响应。
没找到什么好办法,我是直接stop(false,true)跳过当前动画开始下一个
stop()是停止所有在指定元素上正在运行的动画。是指正在进行的动画,刚开始动画还没开始,而且每次点击都进这个方法,就相当于重新开始,都不处于正在进行的动画,你可以用回调函数实现停止动画