ネイティブJSで様々なモーションの複合モーションを実現

ネイティブJSで様々なモーションの複合モーションを実現

この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属性が同じ間隔で変化することを意味します。効果は次のとおりです。

実装コードは以下の通りです。コピー&ペースト、コメントなどご自由にどうぞ。

<!DOCTYPE html>
<html>
 
<ヘッド>
    <meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=utf-8" />
    <title>ネイティブJSで様々なモーションの複合モーションを実現</title>
    <スタイル>
        #div1 {
            幅: 100ピクセル;
            高さ: 100px;
            背景: 赤;
            不透明度: 0.3;
        }
    </スタイル>
    <スクリプト>
        関数 getStyle(obj, attr) {
            (obj.currentStyle)の場合{
                obj.currentStyle[attr]を返します。
            } それ以外 {
                getComputedStyle(obj, false)[attr]を返します。
            }
        }
 
        関数 startMove(obj, json, fn) {
            タイマー間隔をクリアします。
            obj.timer = setInterval(関数() {
                //特定の値に達した後に他の値の変化が止まらないようにスイッチを設定します var bStop = true;
                for (var attr in json) {
                    var iCur = 0;
                    属性 == '不透明度' の場合 {
                        iCur = parseInt(parseFloat(getStyle(obj, attr)) * 100);
                    } それ以外 {
                        iCur = parseInt(getStyle(obj, attr));
                    };
                    var iSpeed ​​= (json[attr] - iCur) / 8;
                    iSpeed ​​= iSpeed ​​> 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
                    //特定の値に達していない場合、bStopはfalseになります
                    iCur != json[attr] の場合 {
                        bStop = false;
                    };
                    属性 == '不透明度' の場合 {
                        obj.style.filter = 'alpha(不透明度:' + (iCur + iSpeed) + ')';
                        obj.style.opacity = (iCur + iSpeed) / 100;
                    } それ以外 {
                        obj.style[attr] = iCur + iSpeed ​​+ 'px';
                    }
                }
 
                //ループの最後のラウンドでtrueの場合、タイマーはクリアされます if (bStop) {
                    タイマー間隔をクリアします。
                    もし(関数){
                        関数fn();
                    }
                }
            }, 30)
        }
    </スクリプト>
    <スクリプト>
        window.onload = 関数(){
 
            var oBtn = document.getElementById('btn1');
            var oDiv = document.getElementById('div1');
 
            oBtn.onclick = 関数 () {
 
                開始移動(oDiv, {
                    幅: 400,
                    高さ: 200,
                    不透明度: 100
                });
            };
        };
    </スクリプト>
</head>
 
<body style="background:#0F0;">
    <input id="btn1" type="button" value="エクササイズを開始" />
    <div id="div1"></div>
</本文>
 
</html>

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

以下もご興味があるかもしれません:
  • Python 機械学習 NLP 自然言語処理 Word2vec 映画レビュー モデリング
  • Python 機械学習 NLP 自然言語処理 基本操作 正確な単語分割
  • Python 機械学習 NLP 自然言語処理 基本操作 ニュース分類
  • Python 機械学習 NLP 自然言語処理 基本操作 キーワード
  • Python 機械学習 NLP 自然言語処理 基本操作 単語ベクトルモデル
  • Python 機械学習 NLP 自然言語処理 基本操作 家庭内暴力分類
  • Python NLPの簡単な紹介
  • Python 機械学習 NLP 自然言語処理 基本操作 映画レビュー 分析

<<:  Docker Swarmを使用してWordPressを構築する方法

>>:  CentOS7 に YUM 経由で MySQL 5.7 をインストールする詳細な手順

推薦する

HTML 選択オプションの基本的な理解と使用

JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...

CSS 境界線の長さ制御機能の実装

以前は、境界線の長さをコンテナーよりも小さくする必要があったときに、div ネストを使用していました...

Linux で rsync を使用する方法

目次1. はじめに2. インストール3. 基本的な使い方3.1、-rパラメータ3.2、-aパラメータ...

フレックスレイアウトは左のテキストオーバーフローを実現し、右のテキストの適応を省略します

テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...

サラウンドリフレクションロード効果を実現するHTML+CSS

この記事では、主に html + css を使用してサラウンド リフレクション ローディング エフェ...

Vueプロジェクトをパッケージ化してリリースする手順

目次1. 開発環境から本番環境への移行2. 統一されたリクエストパスを設定する3. パッケージ化コマ...

CentOS 7.3 で Nginx 仮想ホストを設定する方法

実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...

CSS3は小さな矢印のさまざまなグラフィック効果を実現します

CSS を使ってさまざまなグラフィックを実現できるのは素晴らしいことです。画像を切り取る必要はなく、...

リアルタイムクロックを実装するネイティブJS

ネイティブ JS で実装したリアルタイム クロック エフェクトを共有します。エフェクトは以下のとおり...

vueプロジェクトは特定の領域に透かしを描くことを実現する

この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

MySQL で固定されていない位置から文字列要素を抽出する方法

序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...

Vueのスロットの詳細な説明

Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...

Windows Server 2008 R2 で忘れたパスワードを処理する方法

Windows Server 2008R2を忘れた場合の対処方法サーバーの数が多すぎる、サーバーが多...