1

たとえば、jQueryはある種のアニメーションを実行できることを私は知っています。また、アニメーションの中心には、アニメーションを実行するための何らかのループが必要であることも知っています。そのようなループの例は何ですか?

完全な答えは、理想的には次の質問に答える必要があります。

  • 特定のオブジェクトの単一のプロパティを一度にアニメーション化できる効果的なアニメーション再帰の基本的な構文は何ですか?関数は、ターゲットオブジェクトとオブジェクトのプロパティを変更できる必要があります。
  • どのような引数/パラメータを取る必要がありますか?
  • ループを繰り返す良い範囲は何ですか?ミリ秒で?(これは関数のパラメーター/引数である必要がありますか?)

覚えて:

  • 答えは必ずしも言語固有ではありませんが、特定の言語で書いている場合は、どれを指定してください。
  • エラー処理はプラスです。{途中で停止するなど、奇妙なことを行うアニメーションほど(私たちの目的にとって)苛立たしいものはありません。}

ありがとう!

4

1 に答える 1

1

通常(少なくともjQueryの場合)、これはループではなく、一連のコールバックで行われます。

pseudojavascript:

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 に答える