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 の詳細なインストール チュートリアル

推薦する

Linux でのファイルの編集、保存、終了の実践的な説明

Linux でファイルを編集した後、保存して終了するにはどうすればよいですか?保存して終了するコマン...

Linux で nginx を起動および再起動する方法

Nginx (エンジン x) は、IMAP/POP3/SMTP サービスも提供する高性能 HTTP ...

Linux ファイル管理コマンド例の分析 [表示、閲覧、統計など]

この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...

MySQL で制限を使用するとパフォーマンスに影響するのはなぜですか?

まず、MySQL のバージョンについて説明します。 mysql> バージョンを選択します();...

ElementUI の this.$notify.close() 呼び出しが機能しない問題の解決方法

目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...

CSS の :focus-within の楽しさについて簡単に説明します

Bステーションでパスワードを入力するときに目を覆っているこの画像を見たことがある人もいると思いますこ...

MySQL スロークエリログの基本的な使い方チュートリアル

スロークエリログ関連のパラメータMySQL スロー クエリ関連のパラメータの説明: slow_que...

Winows Server 2019 アクティベーション コードとボリューム ライセンス エディション KMS インストール キー GVLK

最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...

DockerでPython環境をパッケージ化するプロセスの詳細な説明

docker パッケージング Python 環境の手順は次のとおりです。 1 pip listの下に...

ウェブページの色特性の分類

色特性の分類あらゆる色は、赤、緑、青の三原色から構成されます。三原色の中で暖色なのは赤だけなので、作...

MySQL の隠し列の詳細表示

目次1. 主キーが存在する2. 主キーはないが、一意のインデックスが存在する3. 共同主キーまたは共...

VMware で Centos7 ブリッジ ネットワークを構成する手順の詳細な説明

VMware仮想マシンでのCentos7ブリッジネットワーク構成の完全な手順は参考用です。具体的な内...

iframe に関するいくつかの発見と考察

この物語は、今日の予期せぬ発見から始まります。同社には複数のウェブサイトがある。友達リンクにはお互い...

Tomcatでcatalina.batがUTF-8に設定されている場合、コンソールに文字化けした文字が表示されます

1. catalina.bat は UTF-8 に設定する必要があります。UTF-8 に設定しないと...

ネイティブ js でカスタム スクロール バーを実装する

この記事の例では、カスタムスクロールバーを実装するためのjsの具体的なコードを参考までに共有していま...