均一なアニメーション効果を実現する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 データボリュームコンテナの作成と使用状況分析

推薦する

テキストエリアタグはサイズ変更できず、マウスでドラッグすることもできません

テキストエリアタグのサイズは不変ですコードをコピーコードは次のとおりです。 <textarea...

CSS 複数 3 列適応レイアウト実装の詳細な説明

序文従来のWEBレイアウトに沿うため、すべてヘッダーとフッターモードの左・中央・右レイアウトで書かれ...

DockerでSpring Bootアプリケーションを実行する方法

ここ数日、dockerでSpring Bootアプリケーションを実行する方法を勉強してきました。以前...

JavaScript Canvas で三目並べゲームを実装

この記事では、JavaScript Canvasで三目並べゲームを実装するための具体的なコードを参考...

DIV、テーブル、XHTML のウェブサイト構築の違いの分析と説明

簡単に言えば、ウェブサイト構築とは、「この人はどんな外見をしているのか」と「この人はどんな内面を持っ...

MySQL エンコーディング utf8 および utf8mb4 utf8mb4_unicode_ci および utf8mb4_general_ci

参考: MySQL 文字セットの概要utf8mb4 は MySQL 8.0 のデフォルトの文字セット...

Linux ファイル管理コマンド例の分析 [表示、閲覧、統計など]

この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...

Docker での Redis の永続ストレージの詳細な説明

この章では、dockerの下にあるSpring BootプロジェクトでRedisを操作し始めます。準...

Docker Gitlab+Jenkins+Harborは永続的なプラットフォーム運用を構築します

CI/CD の概要CIワークフロー設計Gitコードバージョン管理システムはコマンドラインでのみ管理で...

ElementUIはel-formフォームリセット機能ボタンを実装します

目次ビジネスシナリオ:効果のデモンストレーション:ビジネスシナリオ: el-form を使用する場合...

【HTML要素】画像の埋め込み方法

img 要素を使用すると、HTML ドキュメントに画像を埋め込むことができます。画像を埋め込むには、...

Web2.0製品と機能の簡単な紹介

<br />Web2.0とは何ですか? Web2.0にはソーシャルネットワーク製品とその...

MySQLで指定した時間前にレコードを自動的に削除する方法

イベントについて: MySQL 5.1 では、イベントの概念が導入され始めました。イベントは「時間ト...

ボリュームを使用してホストと Docker コンテナ間でファイルを転送する方法

以前、Docker コンテナとローカル マシン間のファイル転送に関する記事を書きました。しかし、この...