animate({css:xx}) 可以提供一个动画,也是一些常规的轮播插件中常用的手法, 但是如果你双击的话,这个动画就会出现问题。什么问题呢? 就是动画的尺寸和我们预期的不一样。那么为什么会这样呢? animate动画是通过频繁的调用setTimeout 这个方法来实现的一个动态效果,而setTimeout函数 就是一个异步的操作。问题就出现在这里,setTimeout会改变原有的执行上下文,跳出原有的js执行队列,并放到最后。那么你多次几点的时候,就出出现串行, 怎么解决? 呵呵,相信大家也是关心的。 通过判断动画的dom是否完成animate动作,如果完成了,就继续执行,如果没有完成,则不执行。 代码如下

if(!$.is(':animated')) {
        $dom.animate({...});
}