カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます。次に、HTML、CSS、Javascript などのフロントエンド開発の基本知識を使用して、シンプルなカルーセルを作成する方法を学びます。 カルーセルの紹介: ウェブサイトの特定のモジュールでは、コンピューターでマウスをクリックしたり、マウスを動かしたり、携帯電話で指をスライドしたりすることで、さまざまな画像を表示できます。このモジュールは、カルーセル モジュールと呼ばれます。 (何か間違ったことがあれば、批判や訂正を歓迎します。役に立ったと思ったら、星を付けてくださいね〜) HTMLレイアウト部分: <div id="ボックス"> <div class="風景写真"> <img class="show" src="imgs/s2.jpg" alt="風景"> <img src="imgs/s3.jpg" alt="風景"> <img src="imgs/s1.jpg" alt="風景"> <img src="imgs/s5.jpg" alt="風景"> <img src="imgs/s4.jpg" alt="風景"> </div> <div class="車の写真"> <img src="imgs/animal4.jpg" alt="動物"> <img src="imgs/animal3.jpg" alt="動物"> <img src="imgs/animal2.jpg" alt="動物"> <img src="imgs/animal1.jpg" alt="動物"> </div> <div class="エンターテイメント写真"> <img src="imgs/entertainment1.jpg" alt="エンターテイメント"> <img src="imgs/entertainment2.jpg" alt="エンターテイメント"> <img src="imgs/entertainment3.jpg" alt="エンターテイメント"> <img src="imgs/entertainment4.jpg" alt="エンターテイメント"> <img src="imgs/entertainment5.jpg" alt="エンターテイメント"> </div> <div class="leftbar"> <div class="checked">横向き</div> <div>有名な車</div> <div>エンターテイメント</div> </div> <div class="bottombar"> </div> </div> CSS スタイル部分: /* レイアウトの利便性のため、flex は主にコンテナで使用されます */ #箱 { 位置: 相対的; 幅: 460ピクセル; 高さ: 300px; マージン: 40px 自動; 境界線: 1px実線rgb(109, 98, 98); ユーザー選択: なし; } /* サイドバーのレイアウト */ .左バー{ ディスプレイ: フレックス; flex-direction: 列; コンテンツの両端揃え: スペースの間; 位置: 絶対; 上: -1px; 左: -80px; 幅: 80ピクセル; 高さ: 100%; テキスト配置: 中央; フォントサイズ: 20px; カーソル: ポインタ; } .leftbar div { フレックス: 1; 行の高さ: 100px; 背景色: cadetblue; 文字間隔: 5px; } .leftbar div:n番目の子(2) { 上境界線: 1px 実線 #fff; 下境界線: 1px 実線 #fff; } /* 下部スイッチボタンスタイルのデザイン*/ .ボトムバー{ ディスプレイ: フレックス; コンテンツの両端揃え: スペースの間; 位置: 絶対; 下: -1px; 右: -1px; zインデックス: 10; 幅: 200ピクセル; 高さ: 30px; カーソル: ポインタ; } .ボトムバー div { フレックス: 1; 行の高さ: 30px; 背景色: rgb(232, 233, 235, .5); テキスト配置: 中央; フォントの太さ: 700; } .bottombar div~div { border-left: 1px のグレー実線; } 画像 { 位置: 絶対; 表示: ブロック; 幅: 460ピクセル; 高さ: 300px; } 。見せる { zインデックス: 5; } .leftbar .checked、 .bottombar .checked { 背景色: rgb(241, 5, 5); } JavaScriptロジック実装部分: var Box = document.querySelector('#box'), pic = Box.querySelectorAll('.pic'), Idx = 0、インデックス = 0、タイマー = null、 ltDiv = Box.querySelector('.leftbar')、btDiv = Box.querySelector('.bottombar')、 画像 = Box.querySelectorAll('img'); function createBtBar(len){// 下部のスイッチボタンを動的に作成します var str = ''; (var i = 0; i < len; i++) の場合 { str += `<div>${i + 1}</div>`; } btDiv.innerHTML = str; btDiv.children[0].classList.add('チェック済み'); } function initialize(){//ページの初期状態 createBtBar(pic[0].children.length); } 初期化します。 function clearZindex(){//すべての画像の位置レベルをリセットします for (var k = 0; k < Img.length; k++) { Img[k].classList.remove('表示'); } } ltDiv.addEventListener('click', (e) =>{//サイドバー項目 switchif (e.target.tagName.toLowerCase() === 'div') { (var j = 0; j < ltDiv.children.length; j++) { ltDiv.children[j].classList.remove('checked'); } Zindexをクリアします。 idx = 0; インデックス = getEleIdx(e.target); ltDiv.children[index].classList.add('checked'); pic[index].children[0].classList.add('表示'); createBtBar(pic[index].children.length); } }); btDiv.addEventListener('click', (e) =>{//デリゲートは下部のスイッチボタンをリッスンします if (e.target.tagName.toLowerCase() === 'div') { 関数changePic(コールバック) { btDiv.children[Idx].classList.remove('チェック済み'); Zindexをクリアします。 コールバック && コールバック(); btDiv.children[Idx].classList.add('checked'); pic[index].children[Idx].classList.add('show'); } changePic(関数() { Idx = getEleIdx(e.target); }); } }); function getEleIdx(item){//DOM要素のインデックスを取得 var elements = item.parentNode.children; (var i = 0, len = elements.length; i < len; i++) { if (item === elements[i]) { i を返します。 } } } function loopShow(){//ループ自動表示 clearInterval(timer); タイマー = setInterval(関数() { pic[index].children[Idx].classList.remove('show'); btDiv.children[Idx].classList.remove('チェック済み'); idx += 1; (Idx < 0 || Idx > pic[index].children.length - 1)の場合{ idx = 0; } pic[index].children[Idx].classList.add('show'); btDiv.children[Idx].classList.add('checked'); }, 1000); } ループ表示(); Box.addEventListener('mouseover', 関数() { clearInterval(timer); // マウスを表示領域に移動してカルーセルを停止します }); Box.addEventListener('mouseout', 関数() { loopShow(); // マウスを表示領域外に移動すると自動的に回転します }); 具体的な表示効果は以下のとおりです。 (ヒント:写真を準備して自分のフォルダに入れてください〜) 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
エンジン導入InnodbエンジンInnodb エンジンは、データベース ACID トランザクションを...
リクエストロジックフロントエンド --> https経由でnginxをリクエストnginx -...
Jsで作ったスライドボタンの具体的なコードは参考までに。具体的な内容は以下のとおりですまずエフェク...
序文バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...
MySQL には、10 進数などの標準データ型だけでなく、float や double などの非標...
序文MySQL インデックスの使用に関しては、これまでインデックスの最左接頭辞ルール、インデックス ...
コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...
現在のスクロール オフセットを html 要素の属性に追加することで、現在のスクロール位置に基づいて...
ここでは、主に小さなプログラムの開発プロセスでよく使われる、非常に実用的な機能ポイントをいくつか整理...
古典的な色の組み合わせは力と権威を伝え、強いロイヤルブルーはあらゆる古典的な色の組み合わせの中心的な...
SVN サービスのバックアップ手順1. ソースサーバーとターゲットサーバーを準備するソースサーバー:...
序文ダーク モードの概念は、 MacOS系統のMojaveに由来し、ユーザーが選択できる 2 つのス...
SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...
JS スクリプト タグの属性は何ですか? charset : オプション。 src 属性で指定された...
目次序文1. エンドポイント2. 接続ハンドラ3. コヨーテ4. コンテナ責任チェーンパターン序文T...