均一なアニメーション効果を実現するJavaScript

均一なアニメーション効果を実現するJavaScript

この記事の例では、JavaScriptで等速アニメーションを実装するための具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

実装のアイデア:

1. アニメーション効果を実現するために、主にタイミング関数setInterval()を使用します。
2. アニメーションを関数にカプセル化して、繰り返し記述することなく複数の要素から呼び出すことができる。
3. アニメーション関数は、要素オブジェクト、ターゲットオフセット、コールバック関数のパラメータを受け取ります。① 関数内にタイミング関数を追加し、タイミング関数に名前を付け、後でタイミング関数をクリアするためにタイミング関数名を使用します。② タイミング関数内の処理プログラム:
a. 固定ステップ移動値を指定し、要素オブジェクトのオフセットが一定の速度で変化するように設定します - 例: obj.style.left = obj.offsetLeft + 5 + 'px';
b. オフセットが目標値に達したかどうかを判断し、達した場合はアニメーションを停止します - - -
タイマー間隔をクリアします。
そしてアニメーションが停止したら、コールバック関数があるかどうかを判断し、コールバック関数がある場合はコールバック関数を実行します。
4. アニメーション関数の先頭にクリア タイマー関数を追加して、前のアニメーション効果をクリアします - - -clearInterval(obj.timer);
アニメーションをトリガーするには、ボタンをクリックする必要がある場合があります。クリアボタンを追加しないと、アニメーション効果が重ね合わされ、ボタンを繰り返しクリックするとどんどん速くなります。
5. アニメーション関数を参照用のjsファイルにカプセル化することもできます。

ヒント:上記は 1 つの方法にすぎません。必要に応じてさまざまなアニメーション効果を調整できます。

コード例:

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>ユニフォームアニメーション</title>
    <スタイル>
        。箱 {
            位置: 相対的;
            幅: 1000ピクセル;
            上マージン: 20px;
        }
        
        .シャオフリ{
            位置: 絶対;
            上: 0;
            左: 0;
            幅: 150ピクセル;
            高さ: 150px;
        }
        
        .pikaqu {
            位置: 絶対;
            上: 150px;
            左: 0;
            幅: 200ピクセル;
            高さ: 150px;
        }
    </スタイル>
</head>

<本文>
    <button class="btn1">クリックすると小さなキツネが動きます</button>
    <button class="btn2">クリックしてピカチュウを移動します</button>
    <div class="box">
        <img src="images/little fox.jpg" alt="" class="xiaohuli">
        <img src="images/Pikachu.jpg" alt="" class="pikaqiu">
    </div>
    <スクリプト>
        var btn1 = document.querySelector('.btn1');
        var btn2 = document.querySelector('.btn2');
        var xiaohuli = document.querySelector('.xiaohuli');
        var pikaqiu = document.querySelector('.pikaqiu');

        btn1.addEventListener('クリック', 関数() {
            アニメーション(xiaohuli、300);
        })

        btn2.addEventListener('クリック', 関数() {
            アニメーション(ピカキウ、450);
        })

        // アニメーション関数 obj アニメーションオブジェクト、ターゲット ターゲットの左オフセット、コールバック コールバック関数 function animate(obj, target, callback) {
            タイマー間隔をクリアします。
            obj.timer = setInterval(関数() {

                obj.style.left = obj.offsetLeft + 5 + 'px';

                obj.offsetLeft >= ターゲットの場合 {
                    // アニメーションを停止します clearInterval(obj.timer);
                    // コールバック関数がある場合は、コールバック関数を実行します。if (callback) {
                        折り返し電話();
                    }
                }


            }, 30);
        }
    </スクリプト>
</本文>

</html>

ページ効果:

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JS div 均一速度移動アニメーションと可変速度移動アニメーションのコード例
  • JS は均一なスローモーションアニメーション効果のカプセル化の例を実装します
  • JS のオフセットと均一アニメーションの詳細な説明
  • JavaScript ユニフォームアニメーションとバッファアニメーションの詳細な説明
  • 統一された画像カルーセルアニメーションを実現するネイティブJS
  • ネイティブJavaScriptで均一なモーションアニメーション効果を実現

<<:  MySQL DDLステートメントの使用

>>:  Docker データボリュームコンテナの作成と使用状況分析

推薦する

HTMLフォーム要素の詳しい解説(パート1)

HTML フォームは、さまざまな種類のユーザー入力を収集するために使用されます。 HTML フォー...

個人履歴書を作成するための HTML の簡単な実装

履歴書コード: XML/HTML コードコンテンツをクリップボードにコピー<!DOCTYPE ...

メンテナンス可能なJSコードの書き方を教えます

目次保守可能なコードとは何ですか?コード規約1. 読みやすさ2. 変数と関数の命名3. 透過的な変数...

Vue ページ印刷で自動ページングを実装する 2 つの方法

この記事では、ページ印刷の自動ページングを実現するためのVueの具体的なコードを例として紹介します。...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

select count() と select count(1) の違いと実行方法

Count(*) または Count(1) または Count([column]) は、おそらく S...

Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策

docker リモート API を学習した学生であれば、ポート 2375 についてよくご存知だと思い...

複数のネットワークカードを備えた Linux システムでのルーティング構成の詳細な説明

Linux でのルーティング設定コマンド1. ホストルーティングを追加する ルートを追加 -host...

Vue 要素と Nuxt の使用に関するヒントを共有する

1. 要素時間選択提出フォーマット変換例えば 2018年9月7日金曜日 00:00:00 GMT+0...

ページコードの変更の効率を向上させ、HTML言語のコア知識を習得します。

ウェブサイトを構築するとき、HTML 言語は重要ではないと思われるかもしれませんが、実際には、基本的...

uniappは録音アップロード機能を実現

目次uni-app の紹介HTML部分js部分インスタンスを作成する録音を開始録音終了録音を再生再生...

MySQL のインデックスと制約の例文

外部キーテーブルの主キーがどのテーブルの外部キーであるかを照会する 選択 テーブル名、 列名、 制約...

Tomcat 経由で JMX 監視を有効にする方法

シミュレーション環境を構築する:オペレーティングシステム: centos7メモリ: 1G 1.8.0...

Nginx の一般的な設定とテクニックの概要

序文この記事では、Nginx の一般的な、実用的で興味深い構成をいくつか紹介します。この記事を読んだ...