画像カルーセルを実装するためのネイティブJS 小さな広告プラグインを実装するためのJS

画像カルーセルを実装するためのネイティブJS 小さな広告プラグインを実装するためのJS

最近、ネイティブ JS を使用して、さらにいくつかの小さな機能を実装したいと思っています。現在、ブログにそれらを書いています。参照してください。質問がある場合は、指摘してください。

カルーセル

必要:

画像はループで回転します。左または右をクリックすると切り替えることができます。切り替え状態は <li> にバインドされています。マウスを画像内に移動するとホバーし、マウスを画像外に移動すると回転が継続します。

<!DOCTYPE html>
 
<html lang="ja">
 
<ヘッド>
 
    <メタ文字セット="UTF-8">
    <title>ネイティブ js カルーセル画像</title>
 
</head>
 
<スタイル>
    。容器{
        幅: 100%;
        高さ: 500px;
        位置: 相対的;
    }

    。コンテンツ{
        幅: 900ピクセル;
        高さ: 450px;
        位置: 相対的;
        オーバーフロー: 非表示; 
        境界線: 1px 実線海緑; 
        マージン: 0 自動;
    }
 
    .スライダー画像{ 
        幅: 900ピクセル; 
        高さ: 450px; 
        マージン: 10px 自動; 
    }
 
    .slider-img 画像{
        垂直方向の位置合わせ: 上;
        幅: 800ピクセル;
        高さ: 400px;
        マージン: 10px 50px;
        表示: ブロック;
 
    }
 
    。左{
        上マージン: -300px;
        左マージン: 50px;
        幅: 100ピクセル;
        高さ: 100px;
    }
 
    .左画像、.右画像{
        幅: 100ピクセル;
        高さ: 100px;
    }
 
    。右{
        上マージン: -100px;
        右マージン: 50px;
        フロート: 右;
        幅: 100ピクセル;
        高さ: 100px;
 
    }
 
 
 
    。ドット{
        位置: 相対的;
        上位: 23%
        左: 43%;
        幅: 50%;
    }
 
    .dotul{
        幅: 450ピクセル;
    }

    .dotul li{ 
        幅: 20px; 
        高さ: 20px;
        背景色: 海緑;
        リストスタイル: なし;
        フロート: 左;
        境界線の半径: 20px; 
        左マージン: 15px; 
        zインデックス: 999; 
        カーソル: ポインタ; 
    }
 
    。アクティブ{
        背景色:オレンジ !重要;
    }
 
 
 
</スタイル>
 
<本文>
 
    <div class="コンテナ" id="コンテナ">
 
        <div class="content" id="content">
            <div class="slider-img" id="slider" >
                  <a href="javascript:;" >
                    <img src="./img/88.jpg" alt="" id="img">
                </a>
            </div>
 
        </div>
        <div class="btn">
            <div class="left" id="left">
                <a href=" ###" ><img src=""></a>
            </div>
 
            <div class="right" id="right">
                <a href=" ###" ><img src=""></a>
            </div>
        </div>
 
        <div class="dot">
            <ul id="ul" class="dotul">
                <li class="active"></li>
                <li></li>
                <li></li>
               <li></li>
            </ul>
        </div>
</div>

js コードを使用する場合は、html に JS を導入することを忘れないでください。

var コンテナ = document.getElementById("コンテナ"); 
var コンテンツ = document.getElementById("コンテンツ");
var スライダー = document.getElementById("スライダー");
var img = document.getElementById("img");
var ul = document.getElementById("ul"); 
タグ名によって要素を取得します。 
var left = document.getElementById("left"); 
var right = document.getElementById("right"); 
var 数値 = 0;
var タイマー = null;    
var picList = ["./img/88.jpg","./img/are.jpg","./img/family.jpg","./img/one.jpg"];
//liをリストの添え字に対応させる //画像の表示方法を設定する。表示時はliのドットが画像にバインドされる ShowPicture = function() {
       img.src = picList[番号];
       for(var i = 0; i < li.length; i++) {
           li[i].className = '';
       }
       li[num].className = 'アクティブ';
    }
  
    //左クリック、すでに最初の画像の場合は、最後の画像に戻ります。onclick = function() {
        数値--;
        if(数値 < 0) {
           num = picList.length-1;
        }
        画像を表示します。
    }
  

    // 右クリックし、最後の画像の場合は最初の画像に戻る right.onclick = function() {
        数値++;
        if(num >= picList.length) { //3
            数値 = 0;
        }
        画像を表示します。
    }
    
     //ドットをクリックすると対応する画像にジャンプし、liとリストの添え字を一致させます list.index=li.index
   
     for(var i = 0; i < picList.length; i++) {
         li[i].インデックス = i;
         li[i].onclick = 関数() {
             num = this.index;
             画像を表示します。
         }
     }

    //写真を自動的に回転します。呼び出すたびにタイマーをクリアし、呼び出し後にタイマーを返して、時間差がどんどん大きくならないようにすることを忘れないでください。autoChange = function() {
        タイマーの間隔をクリアします。
        タイマー = setInterval(() => {
            数値++;
            num % = picList.length;
            画像を表示します。
        }, 3000);
        タイマーを返します。
    }
    ウィンドウのonloadを自動変更します。

   
    //イベント img.onmouseover = function() {
        タイマーの間隔をクリアします。
    }
    img.onmouseleave = autoChange;

広告プラグイン

要件:ページが読み込まれると、広告がポップアップ表示され、カルーセルに表示されます。マウスを移動してホバーし、マウスを移動しても広告は引き続き表示されます。削除するには [X] をクリックします。

<div id="勝つ">
        <画像id = "画像" />
        <button id = "ad_btn">X</button>  
        // 練習中ですが、クロスはXに置き換えられています。自分のプロジェクトに参加するときにアイコンに置き換えることができます。
</div>
//ページが読み込まれた後、ポップアップ広告が表示されます。削除するには「X」をクリックします。
var ad = document.getElementById('win');
var img = document.getElementById('img');
var ad_btn = document.getElementById('ad_btn');
var タイマー;
window.onload = 関数(){
    // clearInterval(タイマー);
    タイマー = setTimeout(() => {
            ad.style.display = 'ブロック';  
        }, 2000);
        変化();
}

var count=0;
var 数値 = 0;
var imgTimer = null;
//画像ソースリスト
var picList = ['../img/88.jpg','../img/one.jpg','../img/family.jpg','../img/are.jpg'];
関数変更() {
    クリアインターバル(画像タイマー)
    imgTimer = setInterval(() => {
       if(count === picList.length) {
           カウント = 0;
           リセット表示();
       } それ以外 {
           表示を開始します。
       }
       カウント++;          
   }, 3000);
}
関数resetShow() {
    画像のリストをコピーします。
    数値 = 0;
    表示を開始します。
}

関数startShow() {
    if(num < picList.length) {
        img.src = picList[num++];
    } それ以外 {
        リセット表示();
    }
   
}


ad_btn.addEventListener('クリック', (e)=>{
    ad.style.display = 'なし';
    タイムアウトをクリア(タイマー)
});

ad.addEventListener('マウスオーバー', ()=>{
    間隔をクリアします(imgTimer);
})
ad.onmouseleave = 関数() {
    変化();
}

実装表示:

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

以下もご興味があるかもしれません:
  • js 画像カルーセル (5 枚の写真)
  • js 画像自動カルーセル コード共有 (js 画像カルーセル)
  • 最もシンプルな JavaScript 画像カルーセル コード (2 つの方法)
  • 画像カルーセルの特殊効果を実現するためのネイティブ js と jQuery
  • js 画像カルーセル効果実装コード
  • JS を使用してシンプルな画像カルーセル効果を実装する方法
  • JS でシンプルな画像カルーセル効果を実現
  • スクロールホイールカルーセル画像を実現するための JavaScript
  • JSはシンプルな自動画像回転を実装します
  • jsはカルーセル画像の効果を実現し、純粋なjsは画像の自動切り替えを実現します

<<:  MySQL コピーテーブルと許可分析の 3 つの実装方法

>>:  Linux resolv.conf の簡単な分析

推薦する

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

Windows Apache 環境で SSL 証明書を展開して、Web サイトを https 対応にする方法

SSL 証明書の使用についてはここでは説明しません。SSL 証明書を導入する必要がある友人は、すでに...

MySQL 5.7.17 のインストールと使用方法のグラフィックチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

js 実行コンテキストとスコープの概要

目次序文文章1. JavaScriptコードの実行プロセスに関連する概念2. 実行コンテキストと実行...

Docker Swarmの概念と使用法の詳細な説明

Docker Swarm は、Docker によって開発されたコンテナ クラスター管理サービスです。...

MySQLテーブル内の重複データをクエリする方法

hk_test(ユーザー名、パスワード) に値を挿入 ('qmf1', '...

JavaScript データ構造 双方向リンクリスト

単方向リンク リストは、先頭から末尾、または末尾から先頭への方向のみを走査できます。そのため、単方向...

Ubuntuのpython3でvenvを使用して仮想環境を作成する

1. 仮想環境はプロジェクトに従い、単一のプロジェクト用の仮想環境を作成します(Python 3.4...

VMware Esxi のルート パスワードを忘れた後に正常に取得する方法

CentOS6 インストール ディスク (任意のバージョン) を準備するか、別の pnux インスト...

HTMLでvueとel​​ement-uiを直接参照する方法

コードは次のようになります。 <!DOCTYPE html> <html> ...

ウェブページ制作時のコードコメントの書き方

<br />私の仕事で使用しているアノテーションの書き方の基準をまとめました。技術的な内...

Vueルーティングコンポーネントでパラメータを渡す8つの方法の詳細な説明

シングルページアプリケーションを開発する場合、特定のルートを入力し、パラメータに基づいてサーバーから...

MySQL 1対多関連クエリのページングエラー問題の解決方法

XML価格照会のクエリデータにはリストが含まれているため、コレクションが必要です <結果マップ...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

InnoDB のアーキテクチャと機能の詳細な説明 (InnoDB ストレージ エンジンの読書メモの要約)

背景スレッド•マスタースレッドコア バックグラウンド スレッドは主に、バッファー プール データをデ...