シームレスなカルーセルを実現する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へのエクスポート方法の分析

推薦する

複数サーバーの負荷分散を実現するためのNginx構成

Nginx ロード バランシング サーバー: IP: 192.168.0.4 (Nginx-Serv...

HTML 名 ID とクラスの違い_PowerNode Java アカデミー

名前タグの名前を指定します。形式 <input type="text" n...

Docker での環境変数の使用とよくある問題の解決策

序文Docker はコンテナの環境変数を設定できます。設定方法は 2 つあります。イメージを作成する...

Vueプラグインの実装で発生した問題の概要

目次シーン紹介プラグインの実装問題1: 重複したヘッダーコンポーネント質問2: 別の実装アイデア質問...

json.stringify() と json.parse() の違いと使い方

1. JSON.stringify() と JSON.parse() の違い私たちは皆、JSON.s...

共有サイドバーを実装するためのネイティブJS

この記事では、ネイティブ JS で実装された共有サイドバーを紹介します。効果は次のとおりです。 以下...

国内SNSのホームページを比較・分析して得た経験をみんなで共有(写真)

この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...

VMware vCenter 6.7 のインストール プロセス (グラフィック チュートリアル)

背景当初は VMware の公式 Web サイトから 6.7 Vcenter をダウンロードしたかっ...

要素を中央に配置するための配置方法 (Web ページ レイアウトのヒント)

ブラウザウィンドウの中央に要素を配置する方法まず、コード ブロックを示します。すでにコードを理解して...

MySQL 学習データベースバックアップの詳細な説明

目次1.DB、DBMS、SQL 2. データベースの特徴3. SQL分類4. MySQLを起動および...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

Linuxシステムにおけるプロセス管理の詳細な説明

目次1. プロセスとスレッドの概念2. プロセス管理とは何ですか? 3. プロセス管理の役割4. L...

CSS で div にスクロールを追加し、スクロール バーを非表示にする

CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...

Node.js の非同期ジェネレータと非同期反復の詳細な説明

序文ジェネレーター関数は、async/await が導入される前から JavaScript に存在し...

Centos7 での python3 のインストールとアンインストールに関するチュートリアル

1. Python 3をインストールする1. 依存パッケージをインストールしますyum instal...