我一直在研究一个jQuery插件,用于在两个数字值之间设置元素文本的动画。 jQuery的animate函数强制您指定要设置动画的属性。在我的情况下,我基本上需要在每个动画步骤上调用text(),所以我必须进行一些操作以使其工作。
因为我没有以正常的方式使用animate(),所以我将自己暴露给冲突的动画,因为jQuery不会为我处理它。例如,如果我在5秒钟内开始将元素的文本设置为“500”并立即开始在1秒钟内将相同元素的文本动画为“500000”,我会得到奇怪的结果,因为它们之间存在冲突。
一张图片胜过千言万语,所以这里是jsFiddle: http://jsfiddle.net/XjrNC/
我的主要问题是:当我开始播放新动画时,最合适的方法是确保以前的动画停止。
我的第二个问题是:到目前为止,您对我的代码的反馈是什么?你会采取不同的方法吗?
感谢。
答案 0 :(得分:1)
我只是分配ID而不是按类调用...这将使用您的代码,我在我的版本中进行了大量的编辑,所以我甚至不会这样做。
$(function() {
$('#oneThousand').tweenText(500, 5000);
$('#fiveThousand').tweenText(500000, 1000);
})
在你的代码中,我觉得tweenText里面的 $。每个都不是很有用,IMO应该在方法之外。这个概念是对指定的选择器执行此操作,而不是在方法中进行额外选择。
另外,我强烈建议使用参数对象,而不是传递预定义的集合,然后不需要的集合可以传递为null或者只是遗漏。
此外,我添加了一个回调函数,以便您可以设置当前tweenText完成时运行的内容。
以下是我的修改。