主に使用される知識ポイント: •css3 3D変換 •ネイティブjsマウスドラッグイベント •表示:グリッドレイアウト 実装された機能 • 3Dルービックキューブはクリックしてドラッグできます • 効果を直接確認する html: <div class="コンテナ"> <div class="box デフォルト"> <div class="pic"><img src="./img/cat.jpg" alt=""></div> <div class="pic"><img src="./img/dog.jpg" alt=""></div> <div class="pic"><img src="./img/elephant.jpg" alt=""></div> <div class="pic"><img src="./img/lion.jpg" alt=""></div> <div class="pic"><img src="./img/rabbit.jpg" alt=""></div> <div class="pic"><img src="./img/monkey.jpg" alt=""></div> </div> </div> <h1>下の画像ボタンをクリックして切り替えます</h1> <div class="btn"> <input type="image" class="1" src="./img/cat.jpg"> <input type="image" class="2" src="./img/dog.jpg"> <input type="image" class="3" src="./img/elephant.jpg"> <input type="image" class="4" src="./img/lion.jpg"> <input type="image" class="5" src="./img/rabbit.jpg"> <input type="image" class="6" src="./img/monkey.jpg"> </div> CS: ... * { マージン: 0; パディング: 0; } html, 体 { 幅: 100%; 高さ: 100%; 背景: #66677c; テキスト配置: 中央; } 。容器 { 幅: 300ピクセル; 高さ: 300px; マージン: 50px 自動 150px; パースペクティブ: 1200px; } .コンテナ .ボックス { 幅: 300ピクセル; 高さ: 300px; 位置: 相対的; 変換スタイル: 3D を保持します。 遷移: 0.5 秒を変換します。 } .コンテナ .ボックス .pic { 位置: 絶対; 左: 0; 上: 0; 幅: 300ピクセル; 高さ: 300px; ボックスシャドウ: 0px 0px 5px #fff; } .コンテナ .ボックス .pic 画像 { 幅: 100%; 高さ: 100%; カーソル: ポインタ; } .コンテナ .ボックス .pic:nth-child(1) { 変換: translateZ(150px); } .コンテナ .ボックス .pic:n番目の子(2) { 変換: 回転Y(-180度) 移動Z(150ピクセル); } .コンテナ .ボックス .pic:nth-child(3) { 変換: 回転Y(90度) 移動Z(150ピクセル); } .コンテナ .ボックス .pic:nth-child(4) { 変換: 回転Y(-90度) 移動Z(150ピクセル); } .コンテナ .ボックス .pic:nth-child(5) { 変換: 回転X(90度) 移動Z(150ピクセル); } .コンテナ .ボックス .pic:nth-child(6) { 変換: 回転X(-90度) 移動Z(150ピクセル); } h1 { 色: #fff; フォントサイズ: 30px; 下部マージン: 30px; } .btn{ 表示: グリッド; コンテンツの中央揃え: 中央; グリッドテンプレートの列: 100px 100px 100px; グリッドテンプレートの行: 100px 100px; グリッドギャップ: 15px; } .btn 入力 { 幅: 100ピクセル; 高さ: 100px; アウトライン: なし; 境界線: 2px 実線 #fff; } .btn 入力:フォーカス { 境界線: 2px 実線 #e70; } 。デフォルト { 変換: translateZ(-150px) rotateX(-10deg) rotateY(15deg); } .image1 { 変換: translateZ(-150px) rotateX(0deg) rotateY(0deg); } .image2 { 変換: translateZ(-150px) rotateY(-180deg); } .image3 { 変換: translateZ(-150px) rotateY(-90deg); } .image4 { 変換: translateZ(-150px) rotateY(90deg); } .image5 { 変換: translateZ(-150px) rotateX(-90deg); } .image6 { 変換: translateZ(-150px) rotateX(90deg); } js: (関数(){ var btn = document.getElementsByClassName('btn')[0]; var box = document.getElementsByClassName('box')[0]; btn.addEventListener('click',function(e){ var クラス名 = e.target.className; if(クラス名 !== 'btn'){ ボックススタイル = ''; box.classList.replace(box.classList[1],'画像'+クラス名); } }) //マウスのドラッグ効果 var xN = 10, yN = 15; document.addEventListener('mousedown',function(e){ e.preventDefault(); e.stopPropagation(); var x = e.clientX; var y = e.clientY; document.addEventListener('mousemove',move); document.addEventListener('mouseup', 上); 関数move(e){ e.preventDefault(); e.stopPropagation(); var x1 = e.clientX; var y1 = e.clientY; xN + = (x1 - x)*0.04; yN += (y1 - y)*0.04; box.style.transform = 'translateZ(-150px) rotateY(' + xN + 'deg) rotateX(' + -yN + 'deg)'; } 関数 up(){ document.removeEventListener('mousemove', 移動); } }) })() 要約する 上記は、CSS3 に基づくドラッグ可能なルービック キューブ 3D 効果の紹介です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます! |
>>: TypeScript 環境を構築して VSCode にデプロイする詳細な手順
K8s k8s はクラスターです。クラスターには複数の名前空間があります。名前空間の下には複数のポッ...
序文前回の記事では、JavaScript の 2 つのデータ型、基本型と参照型、および参照型の浅いコ...
ここ数年、ウェブサイト開発では DIV+CSS が非常に人気があり、当時は大きな騒動を引き起こしまし...
要約する地球環境 ➡️ ウィンドウ通常関数 ➡️ ウィンドウまたは未定義コンストラクター ➡️ 構築...
ウェブページを画像としてキャプチャする新機能があったので、人気のhtml2canvasを使ってみまし...
序文休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデ...
nginx をインストールApple Mac ではインストールに brew を使用します。brew ...
1. 基本的な Spring-boot クイックスタート1.1 クイックスタート pom.xml は...
目次1. classList属性2. 実用化以前の JavaScript では、最初にクラス属性を取...
この記事では、ドメイン名の書き換えとワイルドカードドメイン名の解決を行うための Nginx の設定方...
1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...
Windows サーバー リモート デスクトップのデフォルトのポート番号は 3389 です。職場でサ...
技術的背景このアプリケーションは vue-cli フレームワークを使用し、カスタム コンポーネント ...
I. はじめにDockerテクノロジーは現在非常に人気があります。コンテナを介してプロジェクト環境を...
MySQL インストール手順 MySQL は、スウェーデンの MySQL AB によって開発された...