シームレスなカルーセルを実現するjQueryプラグイン

シームレスなカルーセルを実現するjQueryプラグイン

シームレス カルーセルは非常に一般的なエフェクトであり、ロジックを理解すれば非常に簡単です。

効果は以下のとおりです

コードセクション

<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <title>シームレスなカルーセルを作成する</title>
  <script src="js/jquery-3.4.1.min.js"></script>
  <スタイル>
   * {
    マージン: 0;
    パディング: 0;
    ユーザー選択: なし;
   }

   #div {
    境界線: 1px 実線のライトグレー;
    幅: 600ピクセル;
    高さ: 300px;
    マージン: 20px;
    オーバーフロー: 非表示;
   }
   。アイテム {
    境界線: 1px 実線のライトグレー;
    幅: 96%;
    高さ: 50px;
    マージン: 10px 自動;
   }
  </スタイル>
 </head>
 <本文>
  <div id="div">
   <div class="rollbox"></div>
  </div>
 </本文>
</html>
<スクリプト>
 $(ドキュメント).ready(関数() {
  (var i = 0; i < 7; i++) の場合 {
   var $item = $("<div class='item'>" + i+ "</div>");
   $item.appendTo($("#div .rollbox"));
  }
 })
 //カルーセルアクション$(function() {
  $("#div").roll(1);
 })

 $.prototype.roll = 関数(スパン) {
  span = span == undefined ? 20 : span; //スクロール速度 var $that = $(this).find('.rollbox');
  var インデックス = 0;
  var t = setInterval(関数() {
   $that.css('margin-top', インデックス + 'px');
   索引 - ;
   チェック();
  }, スパン)
  //
  $that.mouseenter(関数() {
   クリア間隔(t);
  })
  $that.mouseleave(関数() {
   t = setInterval(関数() {
    $that.css('margin-top', インデックス + 'px');
    索引 - ;
    チェック();
   }, スパン)
  })
  関数チェック(){
   var first = $that.children().first();
   var top = parseInt(first.css('margin-top').replace('px',''));
   var bottom = parseInt(first.css('margin-bottom').replace('px',''));
   var height =first.height();
   bw = parseInt(first.css('border-width').replace('px',''));
   var temp = インデックス+上部+高さ+下部;
   if(temp==top-2*bw){
    var last = $that.children().last();
    最後.後(最初);
    $that.css('margin-top','0px');
    インデックス=0;
   }
  }
 }
</スクリプト>

アイデアの説明

  • 最初は要素を直接アニメーション化するつもりでしたが、途中でのねじれや曲がりが少し面倒だったので、すべての子要素をラップする補助コンテナーを用意し、この補助コンテナーを上下に動かすようにしました。
  • つまり、補助コンテナをゆっくりと上に動かすと、すでにスクロール効果があります。次に、上部のコンテナが完全に非表示になっているかどうかを判断し、補助コンテナをリセットして上部の要素を下部に配置します。

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

以下もご興味があるかもしれません:
  • 12 種類のクラシックな白、豊かで美しいタイプ - jQuery 画像カルーセル プラグイン - フロントエンド開発に必須
  • 画像カルーセルの特殊効果を実現するためのネイティブ js と jQuery
  • 画像カルーセル効果を実現する jQuery コード (I)
  • jQuery画像カルーセルの具体的な実装
  • JQuery をベースに画像カルーセル効果を実現する (フォーカス画像)
  • 時間指定の自動カルーセル効果を実現するjQuery
  • 画像カルーセルのフェードインとフェードアウト効果を実現するためのネイティブ js と jQuery
  • jQuery はカルーセル マップを実装します。詳細な説明とサンプル コード
  • jQuery を使用して左右のカルーセル効果を記述する
  • jQueryはシームレスな左右のカルーセルを実装します

<<:  ZabbixはPSK共有キーを使用してサーバーとエージェント間の通信を暗号化します。

>>:  MySQLのExcelへのエクスポート方法の分析

推薦する

CSSスタイルで実現されるHTML背景色のグラデーション効果

エフェクトのスクリーンショット:実装コード:コードをコピーコードは次のとおりです。 <!DOC...

インライン要素スパンの最小高さの定義

span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...

クラウドサーバーを購入し、Alibaba Cloud に Pagoda Panel をインストールする手順

アリババクラウドがサーバーを購入クラウドサーバーを購入し、サーバーバージョンとしてcentos 7....

クロスブラウザの問題に対する 5 つの解決策 (要約)

簡単なレビュー: ブラウザの互換性の問題は、しばしば頭痛の種となります。ここでは、これらの問題を回避...

Linux 向けの強化されたスクリーンショットと共有ツール: ScreenCloud

ScreenCloud は、必要だとは思わなかった素晴らしい小さなアプリです。デスクトップ Lin...

IDEA の Docker プラグインを介して Springboot プロジェクトを公開する方法の詳細なチュートリアル

1. Dockerfileを書く(1)プロジェクト名を右クリックして新しいテキストファイルを作成し、...

vuex での mapState の考え方の応用

目次1. マップ方式2. 応用背景:需要開発プロセス中に、一部のインターフェースは、ページに表示する...

判定条件を使用してCSSファイルをインポートする

解決策 1: HEAD に次のコードを挿入するなど、HTML ドキュメントで条件付きインポートを使用...

純粋な CSS でカスタムラジオボタンとチェックボックス機能を実装する

1. 効果を達成する 2 知識ポイント2.1 <label> タグHTML では、<...

4 つの主要な SQL ランキング関数 ROW_NUMBER、RANK、DENSE_RANK、NTILE の使用方法の紹介

1. ROW_NUMBER()定義: ROW_NUMBER() 関数は、select によってクエリ...

WeChatアプレットは記録機能を実装します

この記事では、WeChatアプレットのレコード機能を実装するための具体的なコードを参考までに紹介しま...

CentOS6.5にpython3.7をインストールする詳細な手順

1. Python 3をダウンロードする https://www.python.org/ftp/py...

MySQLの日付加算と減算関数の詳細な説明

1. 追加時間()指定した秒数を日付に追加する select addtime(now(),1); -...

JS で async await をエレガントに使用する方法

目次jQuery の $.ajax Webpack時代の始まり約束について深く考えるネストをなくすj...

HTML+SassはHambergurMenu(ハンバーガーメニュー)を実装します

先日、外国人の方がHTML+CSSを使ってHamburgerMenuを実装している動画を見ました。最...