この記事では、ネイティブ 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 をインストールする詳細な手順
Web 標準について議論するときに必ず話題になるのは、構造とプレゼンテーションを分離することの重要性...
InnoDB ストレージ エンジンの主な機能には、挿入バッファ、二重書き込み、適応ハッシュインデック...
私はしばらく MGR と連絡を取り合ってきました。MySQL 8.0.23 の登場により、MySQL...
序文MySQL データベースを使用する場合、クライアントはデータベース サーバーにリクエストを送信す...
目次序文プロジェクト設計後部フロントエンドプロジェクトを実行する質疑応答序文これまでの API 開発...
MySQLはユーザーを作成し、ユーザーの権限を承認および取り消します動作環境: MySQL 5.0...
この記事ではMySQL 8.0.12のインストールと設定方法を参考までに記録します。具体的な内容は以...
1. 何ですかreactアプリケーションでは、イベント名はキャメルケース形式で記述されます。たとえ...
目次1. はじめに2. オンデマンド属性モード3. 乱雑な遅延読み込み属性パターン4. クラスの唯一...
この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...
1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...
目次1. ソリューション 1 (UDF)デモケース2. ソリューション2(binlogの解析)キャナ...
1. dfコマンドを使用してディスク全体の使用量を表示します。 df コマンドは、ハードディスクのマ...
1. ツールディレクトリのファイル構造 [root@www tools]# ツリーツール/ ツール/...
MySQL ツールを使用して、3 日間連続する例を見てみましょう。 1. SQL テーブルを作成しま...