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

推薦する

Nginx 構成 SSL および WSS 手順の紹介

目次序文1. Nginxのインストール1. Nginxをダウンロードする2. 依存関係をインストール...

入力選択スタイルを変更する CSS 疑似クラスのサンプルコード

注: この表はW3Schoolチュートリアルから引用したものです疑似要素の分類と機能: 入力選択スタ...

他の人が私のウェブページを保存したり、サイトをコピーしたりするのを防ぐためのヒント

現在、インターネット上でウェブサイトをコピーすることは非常に一般的です。では、他人が私たちのウェブサ...

Vue3+Element+Tsは、フォームの基本的な検索リセットやその他の機能を実装します

Vue2 の記述スタイルから Vue3 の形式に切り替えると、記述スタイルとコード構造にいくつかの変...

Vue+Spring Bootで検証コード機能を実現

この記事では、検証コード機能を実装するためのvue+spring bootの具体的なコードを例として...

10 種類のモダンなレイアウトを実現するための CSS コード

序文日曜日に自宅で web.dev の 2020 3 日間ライブを視聴したところ、興味深い点がたくさ...

将来最も成功する企業はテクノロジー企業でしょうか、それともデザイン企業でしょうか?

ムーアの法則はもはや適用されない2004年にフレックストロニクスがフロッグデザインを買収したのを皮切...

英語の単語の出現頻度を数えるtrコマンドの魔法

置換を削除したり文字列を削除したりできる tr コマンドは、誰もがよく知っています。 英語では、英語...

MySQLインデックスを追加する3つの原則を簡単に理解する

1. インデックスの重要性インデックスは、列に特定の値を持つ行をすばやく見つけるために使用されます。...

Linux 環境の Apache で https サービスを有効にする方法の詳細な説明

この記事では、Linux 環境の Apache で https サービスを有効にする方法について説明...

JSフロントエンドモジュール化のいくつかの仕様についての簡単な説明

目次序文フロントエンドモジュール開発の価値厄介な名前の競合面倒なファイル依存関係モジュール化の利点C...

MySQL IDは1から増加し始め、不連続IDの問題を素早く解決します

mysql idは1から始まり、不連続なidの問題を解決するために自動的に増加します。強迫性障害の私...

Centos7.X Linux システムに tomcat8 をインストールするためのグラフィック チュートリアル

1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....

WeChatアプレットでラッキーホイールゲームを実装する方法

ここでは主に、WeChat アプレットでラッキーホイール ゲームを開発する方法を紹介します。主に J...

WeChatアプレット実装アンカー位置決め機能の例

序文小規模なプログラムの開発では、リストをスクロールして表示する必要性に遭遇することがよくあります。...