jQueryカルーセル機能を実装する方法

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおりです。

jQuery カルーセル (アニメーションなし)

HTMLレイアウト

<!-- カルーセル領域全体 -->
  <div class="コンテナ">
   <!-- カルーセル-->
   <ul class="items" style="left:-200px">
   <!-- 実際には 5 枚の画像のみが回転され、最初の画像は最後の画像に配置され、最後の画像は最初の画像に配置されます (これはトリックです) -->
    <li>5</li>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>1</li>
   </ul>
   <!-- 左ページボタンと右ページボタン -->
   <span class="left">&lt;</span>
   <span class="right">&gt;</span>
   <!-- ドット -->
   <ul class="ポイント">
    <li class="current"></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
   </ul>
</div>

CS

<スタイル>
   /* カルーセルエリア*/
   。容器 {
    幅: 200ピクセル;
    高さ: 100px;
    マージン: 100px 自動;
    オーバーフロー: 非表示;
    位置: 相対的;
   }

   ul {
    位置: 絶対;
    リストスタイルタイプ: なし;
    幅: 1400ピクセル;
    パディング: 0;
    マージン: 0;
   }

   /* カルーセル画像*/
   .items li {
    幅: 200ピクセル;
    高さ: 100px;
    マージン: 0;
    パディング: 0;
    フロート: 左;
    背景色: ピンク;
    テキスト配置: 中央;
   }
   /* 左ページと右ページの範囲 */
   スパン {
    表示: ブロック;
    幅: 20px;
    高さ: 30px;
    背景色: rgba(70, 130, 180, 0.3);
    位置: 絶対;
    上位: 50%;
    変換: translateY(-50%);
    行の高さ: 30px;
   }

   スパン:ホバー{
    カーソル: ポインタ;
   }

   。左 {
    左: 0;
   }

   。右 {
    右: 0;
   }
   /* ドット */
   .ポイント{
    幅: 45px;
    マージン: 0;
    パディング: 0;
    下: 3px;
    左: 50%;
    変換: translateX(-50%);
   }

   .points li {
    フロート: 左;
    幅: 7px;
    高さ: 7px;
    境界線の半径: 50%;
    マージン: 1px;
    背景色: rgba(0, 0, 0, 0.5);
   }

   .points li:hover {
    背景色: rgba(255, 250, 205, 1);
   }

   .ポイント.現在{
    背景色: rgba(255, 250, 205, 1);
   }
</スタイル> 

jQuery

<script type="text/javascript">
   // 1. ボタンをクリックしてページを左右に切り替えます------カルーセル + アニメーション、マウスが入ると再生が一時停止し、マウスが外に出ると再生が続行されます// 2. ページは 3 秒ごとに自動的に切り替わります// 3. ドットは一緒にスタイルを切り替えます// 左に切り替え let $left = $('.left')
   // 右に切り替える let $right = $('.right')
   //画像li
   $list = $('.items') とします。
   $items = $list.children() とします
   // 大きなコンテナ let $container = $('.container')
   // ポイント let $points = $('.points').children()
   定数長さ = $points.length

   //合計オフセット設定 = li.width
   定数項目幅 = 200
   // 各アニメーション時間をミリ秒単位で設定します
   定数時間 = 50
   // 移動回数 const n = 20
   // リストの最大オフセット - (長さ+1)*li.width
   定数 long = -(長さ + 1) * 項目の幅
   // ページをめくるかどうかを指定します。デフォルトではページはめくられていません。------>ページをめくるときにページをクリックしたときの位置ずれの問題を解決します。let moveFlag = false
   //タイマー移動時間 const TIME = 3000
   // 左に切り替える $left.click(function() {
    アイテムを変更する(true)
   })
   // 右に切り替える $right.click(function() {
    アイテムの変更(偽)
   })
   // 自動切り替え let timer = setInterval(function() {
    アイテムの変更(偽)
   }、 時間)
   // マウスが入ると再生が一時停止し、マウスが外に出ると再生が続行されます$container.hover(function() {
    クリアインターバル(タイマー)
   }、 関数() {
    タイマー = setInterval(関数() {
     アイテムの変更(偽)
    }、 時間)
   })
   //ドットをクリックしてページをめくる$points.click(function() {
    //現在クリックされている要素のインデックスを取得します
    インデックス = $(this).index() とします。
    // 対応するインデックスマップにジャンプ changeItem(index)
    // dots の他の兄弟のスタイルをキャンセルします$points.eq(index).addClass('current').siblings().removeClass('current')
   })
   // 左右切り替え関数のカプセル化 function changeItem(flag) {
    // ページが現在めくられている場合は、直接戻ります if (moveFlag) {
     戻る
    }
    // ページがめくられていない場合は、コードを実行し、moveFlag を true に変更してページがめくられていることを示します。moveFlag = true
    // offset はオフセットです。let offset = 0;
    // 
    currentLeft = parseInt($list.position().left) とします。
    // 渡された型がブール値の場合、スムーズな左右のページめくりを意味します // 渡された型が数値の場合、ドットをクリックしてページをめくることを意味します if (typeof flag == 'boolean') {
     // 左に反転するか右に反転するかを決定し、対応する変位を設定します offset = flag ? itemWidth : -itemWidth
    } それ以外 {
     // ドットをクリックするとページがめくられます // -(flag + 1)*itemWidth はターゲット変位、currentLeft は現在の距離です offset = -(flag + 1) * itemWidth - currentLeft
    }
    // 実行回数を累積するために使用される let i = 0
    /*
    アニメーション効果の切り替え:回数に応じて合計距離を計算 = 合計オフセット = オフセット
    毎回時間を設定する
    */
    // 各移動の距離 itemOffset
    itemOffset = offset / n とします。
    // 現在の左を取得する
    // タイマー関数 const timer = setInterval(function() {
     // i===n になるまで実行されるたびに 1 を加算します。つまり、回数が十分になるとタイマーが停止します i++
     現在の左 += 項目オフセット
     // 左の値を設定します // 最初に値を設定してから判断する必要があります $list.css('left', currentLeft)
     もし (i === n) {
      // 変位は十分です。タイマーをクリアします。clearInterval(timer)
      // ページめくり終了 moveFlag = false
      // ドットはそれに応じて変化します$points.eq(Math.abs(currentLeft / itemWidth) - 1).addClass('current').siblings().removeClass('current')
      // 最後の画像が見つかったら、2 番目の画像に切り替えます。ビジュアルはカルーセルです。if (currentLeft == long) {
       $list.css('left', -itemWidth)
       // ドットを実際の最初の画像に設定します $points.eq(0).addClass('current').siblings().removeClass('current')
       // 最後の画像の一番下の画像に到達した場合は、実際の最初の画像に戻ります} else if (currentLeft == 0) {
       $list.css('left', -length * itemWidth)
       // ドットを実際の最後の画像に設定します $points.eq(length - 1).addClass('current').siblings().removeClass('current')
      }
     }
    }、 時間)
   }
</スクリプト> 

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

以下もご興味があるかもしれません:
  • jQuery はカルーセル マップを実装します。詳細な説明とサンプル コード
  • jQuery を使用して左右のカルーセル効果を記述する
  • jQueryはシームレスな左右のカルーセルを実装します
  • jQueryプラグインスライドでシームレスなカルーセル効果を実現
  • jQuery はカルーセル チャートを実装し、その原理の詳細を説明します。
  • jQuery アダプティブカルーセルプラグイン Swiper の使用例
  • jQueryは左右にスライドするカルーセルを実装します
  • JQuery と HTML+CSS を使用して、小さなドットと左右のボタンを備えたカルーセルを作成します。
  • jQueryで実装したシンプルなカルーセル機能【初心者向け】
  • jQuery をベースにフェードインとフェードアウト効果カルーセルを実装する

<<:  Nginxドメイン名転送の実装

>>:  CentOS 6 および 7 での MySQL 5.7 の詳細なインストール チュートリアル

推薦する

Ubuntu システムにおけるネットワーク構成ファイルの分析と説明

今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...

ウェブのさまざまなフロントエンド印刷方法: CSS はウェブページの印刷スタイルを制御します

CSS は Web ページの印刷スタイルを制御します。 CSS を使用して印刷スタイルを制御します。...

SQLクエリの実行順序をゼロから学ぶ

SQL クエリ ステートメントの実行順序は次のとおりです。 (7)選択 (8) DISTINCT &...

MySQL初心者のための基本操作のまとめ

図書館運営クエリ1.SHOW DATABASE; ----すべてのデータベースを照会する2. SHO...

Linux でジャンクファイルをエレガントに削除する方法

あなたも私と同じように、コンピューターのファイルを整然と整理し、不要なファイルを適宜削除するプログラ...

CSS3 で作成された背景グラデーションアニメーション効果

成果を達成する 実装コードhtml <h1 class="text-light&qu...

MySQL インデックス最適化の説明

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...

node-media-serverを使用してシンプルなストリーミングメディアサーバーを構築する

node-media-server を使用するプロセスの一部を記録します。この記事の環境はWindo...

Vue ライフサイクルの紹介とフック関数の詳細な説明

目次Vueライフサイクルの紹介とフック機能VUEライフサイクルフックVue ライフサイクルの紹介作成...

js におけるイベントバブリングとイベントキャプチャの簡単な分析

目次01-イベントバブリング1.1- イベントバブリングの概要1.2-イベントバブリングの利用(イベ...

CentOS8 システムをベースにした Gitlab を構築するために Docker を使用する詳細なチュートリアル

目次1. Dockerをインストールする2. GitLabをインストールする3. GitLabを初期...

CSS子要素選択親要素の実装

通常、CSS セレクターは上から下に選択し、親要素を介して子要素を選択します。では、子要素を介して親...

MySQLは間違ったパスワードを入力する試行回数を制御します

1. 本番環境でMySQLのデッドロックを監視し、デッドロックの可能性を減らす方法まず、デッドロック...

JS、CSS スタイルのリファレンスの記述

CS: ... 1. <link type="text/css" href...

Docker ベースの ELK ログ システムを構築する方法

背景要件:ビジネスがどんどん大きくなると、サーバーの数も増え、さまざまなアクセスログ、アプリケーショ...