この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。 transform = translateX() を使用した画像の切り替え <スタイル> 。箱 { 位置: 相対的; オーバーフロー: 非表示; マージン: 200px 自動; 幅: 600ピクセル; 高さ: 400px; } .img { 幅: 3000ピクセル; 高さ: 400px; } 画像 { フロート: 左; 幅: 600ピクセル; 高さ: 400px; } .btn{ 位置: 絶対; 上: 350px; 左: 245px; 幅: 110ピクセル; 高さ: 20px; } .dian { フロート: 左; マージン: 5px; 幅: 12px; 高さ: 12px; 境界線の半径: 50%; 背景色: rgba(255, 255, 255, 0.3); カーソル: ポインタ; } 。左、 。右 { 表示: なし; ボックスのサイズ: 境界線ボックス; 位置: 絶対; 上: 150px; 幅: 50px; 高さ: 100px; 背景色: rgba(0, 0, 0, 0.521); フォントサイズ: 40px; 行の高さ: 100px; 色: #fff; } .box:hover .left, .box:hover .right { 表示: ブロック; } 。左 { 左パディング: 10px; 左: 0; } 。右 { 右パディング: 10px; テキスト配置: 右; 右: 0; } </スタイル> <div class="box"> <div class="img"> <img src="./img/1.jpeg" alt=""> <img src="./img/2.jpeg" alt=""> <img src="./img/3.jpeg" alt=""> <img src="./img/4.jpeg" alt=""> <img src="./img/5.jpeg" alt=""> </div> <div class="btn"> <span class="dian"></span> <span class="dian"></span> <span class="dian"></span> <span class="dian"></span> <span class="dian"></span> </div> <div class="left">< </div> <div class="right">></div> </div> <スクリプト> var btn = document.getElementsByClassName('btn')[0]; var imgBox = document.getElementsByClassName('img')[0]; var imgs = imgBox.getElementsByTagName('img'); var btnChild = document.getElementsByClassName('dian'); var k = 0; // ボタンにカスタムプロパティを追加します for (var i = 0; i < btnChild.length; i++) { btnChild[i].dataset.num = i * 600; } // デフォルトは最初の画像で、最初のボタンは白です btnChild[0].style.background = 'rgba(255, 255, 255, 0.8)'; // ボタンをクリックすると画像が切り替わり、ボタンの色も変わります btn.onclick = function(e) { e.target.nodeName === 'SPAN' の場合 { // まずすべてのボタンをデフォルトの色に設定します for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } // クリックされたボタンの色が変わります k = +e.target.dataset.num; コンソールログ(k); btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; // 画像を切り替える imgBox.style.transform = `translateX(-${e.target.dataset.num}px)`; } } // 画像の長さを取得します // var imgWidth = +getComputedStyle(imgs[0]).width.slice(0, -2); var imgWidth = imgs[0].offsetWidth; // タイマーが画像を移動します var interval1 = setInterval(move, 1000); var 間隔; // 関数は画像を移動し、ボタンを変更します。function move() { k += 画像の幅; if (k === imgWidth * imgs.length) { 0 = 0; } // 画像を移動する imgBox.style.transform = `translateX(-${k}px)`; // ボタンの色を変更する for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; } // タイマーを削除するには、マウスを画像に移動します。var box = document.getElementsByClassName('box')[0]; box.onmouseover = 関数() { 間隔をクリアします(間隔1); clearInterval(間隔); } // マウスを外に出すとタイマーが開始されます box.onmouseout = function() { 間隔 = setInterval(移動、1000); } var leftBtn = document.getElementsByClassName('left')[0]; var rightBtn = document.getElementsByClassName('right')[0]; rightBtn.onclick = 関数() { k += 画像の幅; if (k === imgWidth * imgs.length) { 0 = 0; } // 画像を移動する imgBox.style.transform = `translateX(-${k}px)`; // ボタンの色を変更する for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; } leftBtn.onclick = 関数() { k -= 画像の幅; (k < 0) の場合 { k = 画像の幅 * (画像の長さ - 1); } imgBox.style.transform = `translateX(-${k}px)`; // ボタンの色を変更する for (var i = 0; i < btnChild.length; i++) { btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)'; } btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)'; } </スクリプト> 効果画像: 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました
最近MySQLデータベースのバージョンを変更する必要があり、それを記録するために記事を書きます1. ...
I. はじめに1: SSL証明書私のドメイン名は Tencent Cloud にあります。第 3 レ...
目次1. DHCP サービス (動的ホスト構成プロトコル) 1. 背景2. 概要3. 利点4.DHC...
123WORDPRESS.COM では、FileZilla のダウンロード リンクを提供しています:...
ドキュメント オブジェクト モデル (DOM) は、プログラムがドキュメントのコンテンツ、構造、およ...
簡単なレビュー: ブラウザの互換性の問題は、しばしば頭痛の種となります。ここでは、これらの問題を回避...
PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...
binlog は、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。 bin...
この記事では、CentOS 7 環境で MySQL 5.6 の複数のインスタンスを作成する方法につい...
ボックス モデルは、要素ボックスの幅と高さ、パディング、境界線、余白のサイズを指定します。境界線の内...
目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...
導入:現在、プログラム攻撃を防ぐために、ユーザーがログインまたは登録するときに多くの動的検証テクノロ...
目次1. MySQLイメージを取得する2. ダウンロードが完了したか確認する3. MySQLはローカ...
目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...
DockerにはCEとEEがあり、CE版はコミュニティ版(無料)、EE版はセキュリティを重視したエン...