1

例如,我知道 jQuery 可以做各种动画。我也知道在动画的核心,我必须有某种循环来做动画。这种循环的例子是什么?

一个完整的答案应该理想地回答以下问题:

  • 一次可以为特定对象的单个属性设置动画的有效动画递归的基本语法是什么?该函数应该能够改变它的目标对象和对象的属性。
  • 它应该采用什么参数/参数?
  • 什么是重复循环的好范围?以毫秒为单位?(这应该是函数的参数/参数吗?)

记住:

  • 答案不一定是特定语言的,但如果您使用特定语言写作,请指明是哪一种。
  • 错误处理是一个加号。{没有什么比做一些奇怪的动画更令人恼火的了(就我们的目的而言),比如中途停下来。}

谢谢!

4

1 回答 1

1

通常(至少对于 jQuery)这不是在循环中完成的,而是在一系列回调中完成的。

伪javascript:

function startAnimation(element, endPosition, duration) {
    var startPosition = element.position;
    var startTime = getCurrentTime();
    function animate() {
        var timeElapsed = getCurrentTime() - startTime;
        if (timeElapsed > duration) {
            element.position = endPosition;
            stopTimer();
        } else {
            // interpolate based on time
            element.position = startPosition +
                (endPosition - startPosition) * timeElapsed / duration;
        }
    }
    startRepeatingTimerWithCallbackAndInterval(animate, 1.0 / 30.0);
}

也可以使用对象而不是闭包来存储起始数据。

这并不能完全回答问题中的所有要点,但它是一个起点。

于 2010-03-08T19:54:32.313 回答