jquery animate动画的特殊用法。

在开发progress bar 的widget的时候,有这样的一个需求,需要progress bar在运行的时候,可以按照一定的间隔值来滚动。而不是连续的滚动(比如滚动20px后,停顿下,在接着滚动20px)。由于在做widget的时候,我的animation是作用在progress 的那个div的。当时是这样写的progress.animate({width:value},{step:function(val){***},duration:***}。其中的step是一个回调函数,在progress的时候,每一个step都会调这个函数,在这里面可以处理progress bar上显示上面的数值的label。而对于这样的一个需求,直接这样用animate是有问题的,这个时候不好控制我的progress的宽度按照一定的间隔来增加/减少。因为这个时候受animate的作用,这个宽度是连续变化的。在这里我用了一个变通的方式处理,就是在调用animate的时候,不直接设置width。而是通过随意设置一个不为css样式的变量。然后在step回调函数中将val的值赋值到progress上。这个时候我可以通过对这个值进行处理,来设置这个值按照一定的间隔值来增加和减少。这个时候animate方法其实就是一个单纯的定时器了。只不过这个定时器和基本的window.setTimeout方法相比有更多的功能。能利用jquery的effect以及stop等特有的方法来控制。