この記事では、ネイティブ 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 をインストールする詳細な手順
1. LinuxのMySQLで中国語の文字化けが発生する。以下の操作を実行する。 vi /etc/m...
ケース1: 最後の提出とプッシュなし次のコマンドを実行します。 git コミット --amend g...
mysqladmin は管理と操作を行う公式の mysql クライアント プログラムです。MySQL...
最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...
えーっと、名前はただの推測です 2333序文これは練習用の CSS デモです。何か間違っている点があ...
テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...
Baiduのインタビューで遭遇する質問は、次のレイアウト効果を達成する必要がある。 中央の紫色の列...
表では、左上の境界線の色を個別に定義したり、セルの右下の境界線の色を定義したりできます。これら 2 ...
余計なことは言わないで、コードだけ見てみましょう〜 # docker-compose をダウン # ...
テンプレート <el-table :data="データリスト"> &...
この記事では、接続エラー ECONNREFUSED を例に、Node.js がエラーを処理するプロセ...
最近、オンライン セキュリティ スキャンにより、MySQL コネクタに脆弱性が見つかりました。確認し...
コンセプト紹介: 1. px (ピクセル):仮想的な長さの単位で、コンピュータ システムのデジタル画...
弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...
1. offsetParentの定義: offsetParentは子要素に最も近い位置に配置された親...