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

推薦する

MySQLでテーブルインデックスを構築する方法

目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...

オブジェクトアニメーションによってブロックされずにオブジェクトに div を表示する方法

今日はメニューボタンを作りました。マウスをボタンに移動するすると、ドロップダウンサブメニューが表示さ...

MYSQLストアドプロシージャ、つまり一般的な論理知識のポイントの要約

MySQL ストアド プロシージャ1. ストアドプロシージャ構文(フォーマット)を作成する 区切り文...

Alibaba Cloudのセキュリティルール設定の詳細な説明

2日前、ダブル11ショッピングフェスティバルを利用して、Alibaba CloudでECS(サーバー...

CSS3 を使用した SVG パス ストロークのアニメーション化入門チュートリアル

JavaScript に依存せず、純粋な CSS を使用してsvgストローク描画アニメーション効果と...

MySQLトランザクションの特徴と分離レベルについてお話ししましょう

インターネットにはすでにこの種の記事が溢れていますが、私がこれをまだ書いている理由は単純です。それは...

VMware15.5 インストール Ubuntu20.04 グラフィック チュートリアル

1. インストール前の準備1. 公式ウェブサイトからUbuntu 20.04のイメージファイルを直接...

フォーム入力ボックスに関するWebデザインのヒント

この記事では、Web デザインにおけるフォーム入力ボックスに関するヒントとコードをいくつか紹介します...

Layui は複数条件クエリのサンプルコードを実装します

最近ファイルシステムを作ったのですが、フィールドが多すぎることに気づきましたページングを使用した複数...

HTML テーブルタグチュートリアル (44): テーブルヘッダータグ

<br />ソース コード内で表の構造を明確に区別するために、HTML 言語では、表のヘ...

HTMLテキストの一般的なイベントとメソッドの詳細な説明

イベントの説明onactivate: オブジェクトがアクティブ要素として設定されたときに発生します。...

モバイルデバイスにおける適応レイアウトの問題に関する簡単な説明 (レスポンシブ、rem/em、Js ダイナミクス)

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイ...

HTML印刷関連の操作と実装の詳細な説明

原則的にはwindow.print()メソッドを呼び出すことですが、このメソッドは現在のページ全体を...

VMware15 仮想マシン ブリッジ モードでインターネットにアクセスできない問題の解決方法

説明 ソリューションVMware 15 仮想マシン ブリッジ モードではインターネットにアクセスでき...

JavaScript を使用してページ要素のオフセットを取得/計算する方法

質問コントロールをクリックすると、コントロールの下にフローティング レイヤーが表示されます。通常の方...