タイトルにあるように、Jquery、settimeout、setintervalを使用せずに、JavaScriptで最も単純なアニメーションを作成する方法はありますか。私は長い間研究を続けてきましたが、何も見つかりません。それを行う方法はないかもしれません、ただ疑問に思っています。クロスブラウザも探しているので、CSSアニメーションも機能しません。
4 に答える
現在、ほとんどのアニメーションを行う「正しい」方法は を使用することです。これは、指定された時間にコールバック関数を実行するという点でwindow.requestAnimationFrame
のようにsetTimeout
機能します。
60fps で実行するように最適化されており、一部のブラウザー (FF) では、次の描画までの正確なミリ秒数が表示されるため、アニメーションの位置を非常に正確に計算できます。
古いブラウザー用のさまざまなクロスブラウザー実装用の Google "requestAnimationFrame shim"。シムはすべて使用しますsetTimeout
— それを回避する方法はありません。
いいえ、間隔やタイムアウトなしでそれを実行し、クロスブラウザで実行できるようにするにはどうすればよいですか?あなたはそれを引き起こし続けるために何かが必要です。
ユーザー入力で何かをアニメートしている場合を除いて、そうではありません。ユーザーがマウス移動イベントまたはページスクロールイベントをトリガーしたときに何かをアニメーション化すると、それは機能する可能性がありますが、それはストップアンドゴーであり、トリガーするユーザーに100%依存します。
setTimeout()
いいえ、またはを使用せずに JavaScript で一時停止する方法はないと思いますsetInterval()
。
私が考えることができる唯一のオプションは、javascript が XMLHttpRequest オブジェクトの応答などのイベントを待機することです。これはばかげています。
Thread.sleep()
JavaScript やUnix システムのように、便利な「(x) ミリ秒実行を一時停止して続行する」機能を探している場合usleep()
、残念ながらそのようなものはありません。
Google Sketchup で実行されている Ruby スクリプトのタイミングを計る目的で、誰かが不可視の HTML ウィンドウを作成して、JavaScript を少しだけ実行しsetInterval()
て、タイミング メカニズムを持たせようとしたと聞いたことを覚えています。JavaScript を実行するためにそこまで行って、まだ使用している場合setInterval()
、おそらく他に選択肢はないと思います。