カルーセル効果を実現するネイティブJavaScript

カルーセル効果を実現するネイティブJavaScript

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

1. 機能:

1. 2.5 秒ごとに次のスライドショーに自動的に切り替えます。

2. 下のボタンは対応するカルーセル画像を切り替えます。

3. マウスを内側に動かすと自動切り替えが一時停止し、外側に動かすと開始します。

4. マウスを動かすと左右の切り替えボタンが表示され、カルーセルを左右に切り替えることができます。

2. エフェクト(GIF):

3. コード:

構造レイヤー (HTML)

<div class="box">
 <img src="./image/banner1.jpg" />
 <div class="左矢印">
  <img src="./image/left.png" />
 </div>
 <div class="右矢印">
  <img src="./image/right.png" />
 </div>
 <ul class="button"></ul>
</div>

プレゼンテーション層 (CSS)

。箱 {
 幅: 300ピクセル;
 高さ: 200px;
 背景: #333;
 境界線の半径: 5px;
 オーバーフロー: 非表示;
 マージン: 0 自動;
 フォントサイズ: 0;
 位置: 相対的;
 ディスプレイ: フレックス;
 アイテムの位置を中央揃えにします。
}
 
.box:hover .arrows{
 表示: ブロック;
}
 
.box 画像{
 幅: 100%;
}
 
.矢印{
 幅: 20px;
 テキスト配置: 中央;
 位置: 絶対;
 上位: 50%;
 変換: translateY(-50%);
 zインデックス: 9;
 フォントサイズ: 30px;
 表示: なし;
}
 
。左{
 左: 10px;
}
 
。右{
 右: 10px;
}
 
。ボタン{
 リストスタイル: なし;
 マージン: 0;
 パディング: 0;
 ディスプレイ: フレックス;
 コンテンツの中央揃え: 中央;
 位置: 絶対;
 下: 10px;
 左: 50%;
 変換: translateX(-50%);
}
 
.ボタン li {
 幅: 20px;
 高さ: 5px;
 境界線の半径: 1px;
 背景: #fff;
 マージン: 0 2px;
}
 
。アクティブ {
 背景: 赤 !重要;
}

動作レイヤー (JavaScript)

let count = 0 // 現在のカルーセルインデックスを作成する // DOM要素を取得する let box = document.querySelector('.box')
img = document.querySelector('img') とします。
left = document.querySelector('.left') とします。
右 = document.querySelector('.right') とします。
ul = document.querySelector('ul') とします。
 
// カルーセル画像配列 let imgArr = [
 './image/banner1.jpg',
 './image/banner2.jpg',
 './image/banner3.jpg',
 './image/banner4.jpg'
]
 
// 画像配列を走査し、対応する下部スイッチ li タグを追加します imgArr.forEach(() => {
 li = document.createElement('li') とします。
 ul.appendChild(li)
})
 
let lis = document.querySelectorAll('li') // すべてのliタグを取得 lis[0].className = 'active' // 最初のliタグに選択状態を追加 // スライドショーを切り替える function switchImg (type) {
 関数()を返す{
  if(type == 1) {
   if(count - 1 < 0) {
    カウント = imgArr.length - 1
   } それ以外 {
    カウント += -1
   }
  } それ以外 {
   if(count + 1 >= imgArr.length) {
    カウント = 0
   } それ以外 {
    カウント += 1
   }
  }
  img.src = imgArr[カウント]
  lis.forEach((v,i) => {
   lis[i].className = ''
   if(i == カウント) {
    lis[i].className = 'アクティブ'
   }
  })
 }
}
 
left.addEventListener('click', switchImg(1)) // 前のスライドショー right.addEventListener('click', switchImg(2)) // 次のスライドショー // スライドショーを切り替えるには、下の li タグをクリックします lis.forEach((value,index) => {
 lis[インデックス].addEventListener('クリック', () => {
  lis.forEach((v,i) => {
   lis[i].className = ''
  })
  カウント = インデックス
  img.src = imgArr[カウント]
  lis[count].className = 'アクティブ'
 })
})
// 2.5秒ごとに次のスライドに自動的に切り替わるタイマーを作成する let swiper = setInterval(() => {
 右クリック()
},2500)
//マウスが入り、自動切り替えを一時停止します。box.onmouseenter = () => {
 clearInterval(スワイパー)
}
//マウスを離すと自動切り替えが開始されます box.onmouseleave = () => {
 スワイパー = setInterval(() => {
  右クリック()
 },1500)
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JS は複数のタブを切り替えるカルーセルを実装します
  • jsを使用してシンプルなカルーセル効果を実現する
  • シンプルなカルーセルの最も完全なコード分析を実装するJavaScript(ES6オブジェクト指向)
  • シンプルなカルーセル チャートを実装するための JavaScript の最も完全なコード分析 (ES5)
  • カルーセルの完全なコードを実装するためのjs
  • ネイティブ js でカルーセルを実装するためのサンプル コード
  • 携帯電話のスライドスイッチカルーセル画像の例をサポートする効果を実現するためのjs
  • JS カルーセル図の実装の簡単なコード
  • js で左右のボタンをクリックして画像を再生する
  • カルーセル例の JavaScript 実装

<<:  Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明

>>:  Linux インストール MongoDB の起動と一般的な問題の解決

推薦する

Webデザインチュートリアル(5):Webビジュアルデザイン

<br />前回の記事:Webデザイン講座(4):素材と表現について Webデザイン上級...

docker compose サービスの起動順序を制御する方法

まとめDocker-compose は複数の Docker コンテナ サービスを簡単に組み合わせるこ...

固定テーブル幅テーブルレイアウト: 固定

テーブルを画面全体(残りの空白領域)に表示するために、幅属性は 100% と定義されることが多く、セ...

Docker ネットワークの原理とカスタム ネットワークの詳細な分析

Docker はホストマシン上のブリッジを仮想化します。コンテナを作成して起動すると、各コンテナには...

Linuxで権限が拒否された場合の解決策の詳細な説明

許可が拒否されました:その理由は、ファイルの読み取り、書き込み、作成、削除などの権限がないためです。...

JavaScriptの動作メカニズムの詳細な説明とイベントループについての簡単な説明

目次1. JavaScript がシングルスレッドなのはなぜですか? 2. タスクキュー3. イベン...

MySQL パーティション関数の詳細な説明と例の分析

まず、データベース パーティショニングとは何でしょうか?以前、MySQL のテーブル パーティショニ...

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...

純粋なCSSを使用してスクロールシャドウ効果を実現します

端的に言うと、スクロール可能な要素には非常によくある状況があります。通常、スクロールすると、要素が現...

Mac M1 での Nginx のマルチサイト構成の実装

注: nginxはbrew経由でインストールされますウェブサイトのルートディレクトリ: /opt/h...

MySQLデータベースでの値の追加、変更、削除、クリアの例

3. MySQLデータ管理最初の方法:お勧めできません。複雑そうです -- 学生テーブルの grad...

仮想マシンのディスクサイズを拡張する方法

Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...

MySql のグループ化と各グループからランダムに 1 つのデータを取得する

アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...

Linux で scp コマンドを使用してファイルをリモートでコピーする方法の詳細な説明

序文scp は secure copy の略です。scp は、Linux システムの ssh ログイ...