主に使用される知識ポイント: •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 にデプロイする詳細な手順
ページをナビゲートする2つの方法宣言型ナビゲーション: リンクをクリックしてナビゲーションを実現する...
目次背景提供/注入共有状態の抽出データを提供するデータの挿入まとめ反応的な共有状態の抽出共有状態の使...
MySQL をクリーンアンインストールします。個人的にテストしたところ、今回はようやくうまくいきま...
すべてのアニメーションの基本原理は、対応する画像を短時間で次々に表示し、視覚的に動いているように見せ...
背景最近、複数のプロジェクトを展開する際に、1 つのドメイン名で複数のプロジェクトにアクセスする方法...
Mongodb には db.serverStatus() コマンドがあり、これを使用して Mongo...
1. 事前準備 (windows7+mysql-8.0.18-winx64) 1. ダウンロードアド...
目次1. JavaScript における数値2. Javascript の Math オブジェクト1...
実装のアイデア一番外側は大きな円(グラデーションカラー)グラデーションの円を覆うように、内側に半円を...
HTMLコード: <a onclick="goMessage();" st...
目次背景解決策1: 古いデータをバックアップするオプション2: テーブルを分割する解決策3: tid...
Rancher のデプロイメントには、次の 3 つのアーキテクチャがあります。高可用性 Kubern...
ブロガーはこう述べています。「私は『史上最も簡単な MySQL チュートリアル』という一連のブログ記...
jar パッケージを実行する Linux コマンドは次のとおりです。方法1: java -jar s...
k3dとは何ですか? k3d は、Docker で K3s クラスターを実行するための小さなプログ...