jQuery停止动画和判断是否处于动画状态

2015-03-05 09:07

1、停止元素的动画

很多时候需要停止匹两己元素正在进行的动画,例如上例的动画,如l果需要在某处停止动画,需要使用stop()方法。stop()方法的语法缩构为:

stop([clearQueue][,gotoEnd]);

参数clearQHCHC和gotoEnd都足町选的参数,为Boolean值(ture或flase)。clearQueue代表足胥婴清空术执{j.完的动嘶队列,90toEnd代表是否直接将萨在执行的动画跳转到术状态。
    如粜商接使川stop()方法.!【!IJ会。一即停.l卜专前一在进行的动画,如.粜接下来还有动画等待继续进行.呲0以当前状态J r始接下柬的动画。经常会遇到这种情况.在为。’个元索绑定hover事件之后.Jf】户把光标移入元素时会触发动画效粜,而当这个动画还没结束时,用户 就将光标移出这个元素了,J且j么光标移出的动画效粜将会被放进队列之中,等待光标移入的动画结束后再执行。I蚓此如粜光标移入移出搿过快就会导致动画效 粜.b光标的动作不一1致。此时只要神:光标的移入、移出动越之前加入stop()力‘法,就能解决这个问题。stop()方法会结束当前j下在进行的动 l画,并立即执行队列中个动画。以下代码就可以解决刚才的问题。

2.判断元素是否处于动画状态
    在使用animate()方法的时候,要避免动画积累而导致的动画与用户的行为不一致。当用户快速在某个元素L执行animate()动画时,就会出现动 画积累。解决方法足判断元素是否正处于动画状态,如果元素不处于动画状态,才为元素添加新的动画,否则不添加。代码如下:

if($(element).is(":animated")){    //判断元素是否正处于动画状态
//如果当前没有进行动画,则添加新动画
}

这个判断方法在animate()动画中经常被用到,需要特别注意。

^