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 データベースを手動で展開する方法の詳細な説明

推薦する

元のPATHを上書きしてコマンドが見つからないというメッセージが表示されるコマンド失敗の問題を解決する方法

同僚から、LINUX サーバー上の多くのコマンドが (コマンドが見つかりません) というプロンプトで...

MySQL 論理バックアップとリカバリ テストの概要

目次1. データベース論理バックアップとはどのようなバックアップですか? 2. よく使われる論理バッ...

Win7 で IIS7 Web および FTP サービスを完全にアンインストールする方法

昨日、パソコンにPHP開発環境をセットアップした後、Apacheサーバーを再起動するとエラーが続きま...

Vue はネストされたルーティングメソッドの例を実装します

1. ネストされたルーティングはサブルーティングとも呼ばれます。実際のアプリケーションでは、通常、ネ...

Linux jdk のインストールと環境変数の設定チュートリアル (jdk-8u144-linux-x64.tar.gz)

最初にsudo suコマンドを使用して root アカウントに切り替えることをお勧めします。そうしな...

MySQL の中国語ソートの詳細と例

MySQL の漢字ソートの詳細な説明デフォルトでは、MySQL は日付、時刻、および英語の文字列の並...

Linux lsコマンドの使用

1. はじめにls コマンドはディレクトリの内容を表示するために使用され、Linux で頻繁に使用さ...

Linux whatisコマンドの使い方

01. コマンドの概要whatis コマンドは、システム コマンドの簡単な説明を含むいくつかの特別な...

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する3 秒後に abc を印刷します。一度だけ実行します。 setTimeou...

Dockerコンテナの操作手順の概要と詳細説明

1. コンテナを作成して実行するdocker run -it --rm centos:latest ...

黒、白、グレーの控えめでエレガントなウェブデザインを鑑賞

クラシックな色の組み合わせの中でも、黒、白、グレーの時代を超えた魅力を否定できる人はおそらくいないで...

CSSでプロセスナビゲーション効果を実現する(3つの方法)

CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...

JavaScriptアニメーション関数のカプセル化の詳細な説明

目次1. アニメーション機能の原理2. アニメーション関数のシンプルなカプセル化3. アニメーション...

HTML H タイトルタグの使用

H タグ、特に h1 タグの使用は常に議論の的となっている問題であり、私たちが研究する価値のある問題...

JavaScript バブルソートの例

目次1. バブルソートとは何か2. 例を挙げるラウンド1:第2ラウンド:第3ラウンド:第4ラウンド:...