この記事では、ネイティブ 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Docker Swarmを使用してWordPressを構築する方法
>>: CentOS7 に YUM 経由で MySQL 5.7 をインストールする詳細な手順
JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...
以前は、境界線の長さをコンテナーよりも小さくする必要があったときに、div ネストを使用していました...
目次1. はじめに2. インストール3. 基本的な使い方3.1、-rパラメータ3.2、-aパラメータ...
テキストの長さに応じて、左側のテキストの幅を自動調整できる状況を実現したい。1行が表示できない場合、...
この記事では、主に html + css を使用してサラウンド リフレクション ローディング エフェ...
目次1. 開発環境から本番環境への移行2. 統一されたリクエストパスを設定する3. パッケージ化コマ...
実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...
CSS を使ってさまざまなグラフィックを実現できるのは素晴らしいことです。画像を切り取る必要はなく、...
ネイティブ JS で実装したリアルタイム クロック エフェクトを共有します。エフェクトは以下のとおり...
基本的な構文text-overflow を使用するには、hight、over-flow:hidden...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...
1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...
序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...
Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...
Windows Server 2008R2を忘れた場合の対処方法サーバーの数が多すぎる、サーバーが多...