カルーセル効果を実現するネイティブ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 の起動と一般的な問題の解決

推薦する

CentOS のクローン作成、Linux 仮想マシンの共有の完全な手順

序文Linux が完全にセットアップされると、クローン機能を使用して短時間で複数の Linux を作...

MySQLサーバのスレッド数を表示する方法の詳細な説明

この記事では、例を使用して、MySQL サーバーのスレッド数を表示する方法について説明します。ご参考...

DockerにFastDFSをインストールする方法

画像をプルする docker pull season/fastdfs:1.2トラッカーを開始 doc...

Gearman + MySQL による永続化操作例

この記事では、gearman+mysql メソッドを使用して永続化操作を実装します。ご参考までに、詳...

React useMemo と useCallback の使用シナリオ

目次メモを使うコールバックの使用メモを使う親コンポーネントが再レンダリングされると、そのすべての要素...

Linux でファイルを削除するさまざまな方法の効率の比較

Linux で大量のファイルを削除する効率をテストします。まず500,000個のファイルを作成する$...

Nginx+Keepalived でデュアルマシン マスターとバックアップを実装する方法

序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...

PHP スケジュールバックアップ MySQL および mysqldump 構文パラメータの詳細

まず、MySQL バックアップ コマンド mysqldump の一般的な操作例をいくつか紹介します。...

Vue は動的な円形のパーセンテージ進捗バーを実装します

最近、小さなプログラムを開発しているときに、次の設計図のような円形のパーセンテージ進捗状況バーを実装...

Linux での i3 ウィンドウ マネージャーの設定と使用に関するチュートリアル

この記事では、Fedora 28 に i3 をインストールして簡単に設定する方法を説明します。 1....

Linux7 ベースの Hadoop のインストールと構成の詳細なグラフィック説明

上記のように材料を準備します(ps: hadoop-3.1.2-srcはhadoop-3.1.2に変...

HTML テーブル マークアップ チュートリアル (2): テーブル境界属性 BORDER

デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...

Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)

この記事では、Docker を使用して MySQL をデプロイし、データを保持する方法について簡単に...

.Net Core を使用して数千万のデータを MySQL にインポートする手順

目次事前準備実施方法: 1. 単一のデータを挿入する2. マージデータ挿入3. MySqlBulkL...

JavaScript モバイル H5 画像生成ソリューションの説明

現在、WeChatパブリックアカウントの運用活動が多く、写真を生成する必要があります。生成された写真...