主に使用される知識ポイント: •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 にデプロイする詳細な手順
MySQLのダウンロードとインストール(バージョン8.0.20)のチュートリアルは参考までに、具体的...
この記事の例では、ボタンをクリックすることで4桁のランダムな検証コードを生成するjsの具体的なコード...
正式な環境でアップグレードする場合は、データと重要な設定をバックアップしてください。アップグレードに...
コードをコピーコードは次のとおりです。 <object classid="clsid...
1. DOM要素を挿入、更新、または削除するときに、適切な場合は要素にスタイルクラス名を追加します。...
目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...
目次序文システム環境現在のシステムパーティションレイアウトデータのバックアップレスキューモードに入る...
目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...
この記事の例では、キャンバスをベースにした超クールな水の光の効果を実装するための具体的なコードを参考...
パスワードモードPDO::__construct(): サーバーがクライアントに不明な認証方法を要求...
この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...
secure_file_priv = ' ';管理者としてcmdを実行します。 my...
PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...
1. モバイル端末がリストスライドを処理するとき、WeChat には下部にページに戻るボタンが組み...
iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使...