0

我想以秒为单位计数,0nx每一步调用一个函数。

例如:

var count = 0,
    targetCount = 100,
    duration = 500,
    timing,
    interval;

timing = duration / targetCount,

interval = setInterval(function() {
    count ++,

    console.log("call onIntervalProgress()", count);

    if(count === targetCount)
        clearInterval(interval),
        console.log("call onIntervalDone()", count)
}, timing);

问题是我不想那样线性地做。我想使用 easing 来完成这项工作。我知道 jQuery 提供了计时功能。是否可以在非 CSS 的东西上使用 jQuerys “swing”?

4

2 回答 2

1

尽管这不是您问题的确切答案,但它可能会有所帮助。你真的不需要 jQuery 函数来做到这一点。您可以轻松使用 setTimeout 和您自己的计时功能。就像是:

  var counter = 0;

  function countSomething() {

       counter++;
       // Call functions, do stuff... whatever you want

       if (counter < n) {
           setTimeout("countSomething()", 2000/counter); // Instead of 2000/counter do something that is appropriate for what you need
       }
  }

  countSomething();
于 2013-04-23T10:01:08.113 回答
0

这是一个 jQuery 插件,它完全符合我的要求:

http://www.bennadel.com/blog/2007-Using-jQuery-s-animate-Method-To-Power-Easing-Based-Iteration.htm

欢迎任何更好的想法(没有内部元素创建等)!

于 2013-04-23T10:15:50.913 回答