jsネイティブカルーセルプラグインの制作

jsネイティブカルーセルプラグインの制作

この記事では、jsネイティブカルーセルプラグインの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

呼び出すときは、DIVを書くだけでよい

呼び出される js 部分の構成内容:

カルーセル画像を表示する位置(div)を渡します

受信画像とクリック可能なリンク

さっそく、コードを始めましょう。

html

<div id="バナー"></div>

HTML ドキュメントの <script> には、カルーセルの構成が含まれています。パラメータは 2 つあります。最初のパラメータは、渡す必要のある DIV (カルーセルが表示される領域) です。2 番目のパラメータは配列です。配列内の要素はオブジェクトです。オブジェクトの最初の属性 imgUrl は画像を表し、2 番目の属性 link はジャンプ リンクを表します。

配列要素は画像であり、数は無制限で適応性がある

<スクリプト>
        バナーエリア(document.getElementById("バナー"),[
            {imgUrl:"画像",
            link:"ジャンプリンク"
        },
            {imgUrl:"画像",
            link:"ジャンプリンク"
        },
            {imgUrl:"画像",
            link:"ジャンプリンク"
        }
        ])
</スクリプト>

JSプラグインコンテンツ

// 2 つのパラメータ、1 つ目はスライド領域、2 つ目は設定関数です。bannerArea(areaDom, options) {
    var imgArea = document.createElement("div");
    var numberArea = document.createElement("div");
    var curIndex = 0; //最初のスライドショー var changeTimer = null;
    var changeDuration = 1000; //間隔 var timer = null;
    
    initImg();//画像を表示する領域を作成します initNumber();//バッジを表示する領域を作成します setStatus();//ステータスを設定します autoChange();//自動的に切り替えます //以下はローカル関数です //画像を作成し、スタイルを設定します function initImg() {
        imgArea.style.width = "100%";
        imgArea.style.height = "100%";
        imgArea.style.display = "flex";
        imgArea.style.overflow = "非表示";
        (i = 0 とします; i < options.length; i++) {
            var obj = オプション[i];
            var img = document.createElement("img");
            イメージをアップロードする
            スタイルの幅 = "100%";
            スタイルの高さ = "100%";
            スタイル:
            img.addEventListener("クリック", 関数() {
                location.href = オプション[i].link;
            })
            imgArea.appendChild(img);
        }
        imgArea.addEventListener("mouseenter", 関数() {
            間隔をクリアします(変更タイマー)。
            変更タイマー = null;
        })
        imgArea.addEventListener("mouseleave", 関数() {
            自動変更();
        })
        areaDom.appendChild(画像エリア);
    }
    //上付き文字要素を作成し、スタイルを設定する function initNumber() {
        numberArea.style.textAlign = "center";
        numberArea.style.marginTop = "-25px";
        (i = 0 とします; i < options.length; i++) {
            var sp = document.createElement("span");
            sp.style.width = "12px";
            sp.style.height = "12px";
            sp.style.background = "ライトグレー";
            sp.style.display = "インラインブロック";
            sp.style.margin = "0 7px";
            sp.style.borderRadius = "50%";
            sp.style.cursor = "ポインタ";
            sp.addEventListener("クリック", 関数() {
                現在のインデックス = i;
                ステータスを設定します。
            })
            番号エリアに子要素を追加します。
        }
        areaDom.appendChild(数値エリア);
    }
 
    //コーナーエリアのステータスを設定する function setStatus() {
        //円の背景色を設定します for (var i = 0; i < options.length; i++) {
            if (i === 現在のインデックス) {
                //選択した数値に背景色を設定しますArea.children[i].style.background = "rgb(222 57 57)";
            } それ以外 {
                //非選択 numberArea.children[i].style.background = "lightgray";;
            }
 
        }
        //画像を表示します var start = parseInt(imgArea.children[0].style.marginLeft);
        var end = curIndex * -100;
        var dis = 終了 - 開始;
        var 期間 = 500;
        var speed = dis / 期間;
        if (タイマー) {
            タイマーの間隔をクリアします。
        }
        タイマー = setInterval(関数() {
            開始 += 速度 * 20;
            imgArea.children[0].style.marginLeft = 開始 + "%";
            (Math.abs(終了 - 開始) < 1) の場合 {
                imgArea.children[0].style.marginLeft = end + "%";
                タイマーの間隔をクリアします。
            }
        }, 20)
    }
    // 自動切り替え関数 autoChange() {
        if (変更タイマー) {
            戻る;
        }
        changeTimer = setInterval(関数() {
            (curIndex === options.length - 1)の場合{
                カーソルインデックス = 0;
            } それ以外 {
                curIndex++;
            }
            ステータスを設定します。
        }, 変更期間)
    }
 
}

スライドショーの速度(切り替え時間)はプラグインコードで調整できます。var changeDuration = 1000; //interval

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

以下もご興味があるかもしれません:
  • Swiper.jsプラグインを使用すると、カルーセル画像を非常に簡単に実装できます。
  • js でシームレスなカルーセルプラグインのカプセル化を実現
  • jsカルーセルのプラグインカプセル化の詳細な説明
  • ネイティブ JS カルーセル プラグイン
  • カルーセルの完全なコードを実装するためのjs
  • ネイティブ js でカルーセルを実装するためのサンプル コード
  • 携帯電話のスライドスイッチカルーセル画像の例をサポートする効果を実現するためのjs
  • JS カルーセル図の実装の簡単なコード
  • js で左右のボタンをクリックして画像を再生する
  • JSは左右のシームレスなカルーセルコードを実装します

<<:  nginx proxy_cache キャッシュ設定の詳細な説明

>>:  Linux でリモート MySQL データベースを手動で展開する方法の詳細な説明

推薦する

ZabbixはSNMPに基づいてLinuxホストを監視します

序文: Linux ホストは、エージェント プログラムをインストールする場合でも、SNMP を使用す...

WeChat 8.0の爆発的な特殊効果を実現するために300行以上のCSSコードが必要

WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...

CSS3 タブアニメーションの例 背景切り替えの動的効果

CSS 3 アニメーションの例 - タブの背景切り替えの動的効果、具体的なコードは次のとおりです。 ...

Linux ドメイン ネーム サービス DNS 設定方法

DNSとはDNS の正式名称は Domain Name System で、ドメイン名解決システムを意...

エンタープライズプロダクション MySQL 最適化入門

Oracle、DB2、SQL Server などの他の大規模データベースと比較すると、MySQL に...

Docker 実行時にユーザーとグループを管理する方法

Docker はプロセスを中核としてシステムリソースを分離する管理ツールです。分離は、オペレーティン...

Nofollowタグの書き方と使い方

「nofollow」タグは数年前に Google、Yahoo、Microsoft によって提案されま...

HTML ページをスクロールするときに一部のコンテンツを固定位置に固定する方法

この記事では主に、レイアウトに役立つ、HTML ページ内の一部のコンテンツを固定してスクロール時にス...

シンプルな CSS テキストアニメーション効果

成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...

JavaScript を使用せずに HTML の a タグを無効にするには、純粋な CSS を使用します。

実際、この問題は、HTML の select タグを初めて学んだときにすでに発生していました。今日に...

Iframe の内外のページで JS がどのように動作するかの概要

目次iframeの外側のiframeのコンテンツを取得する方法1方法2 iframe 内の ifra...

Vueはシンプルなメモ帳機能を実装します

この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

Mysql5.7でのスケジュールバックアップの実装

1. MySQL インストール パス D:\xxx\MYSQL\MySQL Workbench CE...

MySQL インデックスの詳細な説明

目次1. インデックスの基本1.1 はじめに1.2 インデックスの仕組み1.3 インデックスの種類1...