目次
カルーセル画像の原理
Html レイアウト
CSS の変更
JS エフェクト
ホームページ ウェブフロントエンド jsチュートリアル ネイティブjsは自動カルーセルチャートを実装します

ネイティブjsは自動カルーセルチャートを実装します

Mar 22, 2018 pm 05:05 PM
javascript 成し遂げる


カルーセル画像は、現在、Web サイトのページで最も一般的なエフェクトの 1 つで、淘宝網、JD.com などの多くの Web サイトで使用されています。いくつかの自動タブも必要ですが、再現性が高くなります。ここで共有し、js ネイティブ コードを使用してカルーセル画像の一般的な効果を実現してください。

カルーセル画像の原理

同じサイズの一連の画像がタイル状に並べられ、CSS レイアウトを使用して 1 つの画像のみを表示し、残りの画像を非表示にします。タイマーを使用してオフセットを計算して自動再生を実現します。


Html レイアウト

まず、親コンテナのバナーにはすべてのコンテンツが格納され、子コンテナの img-list には画像が格納されます。サブコンテナリストにはボタンドットが格納されます。ドットの背景画像を使用しました!

<p id="banner">
    <ul id="img-list">  
       
        <li><img src="images/banner1.png" alt="1"/></li>
        <li><img src="images/banner2.jpg" alt="2"/></li>
        <li><img src="images/banner3.png" alt="3"/></li>

    </ul>
    <p id="list">
        <span index="1" class="on"></span>
        <span index="2"></span>
        <span index="3"></span>
    </p>
</p>
ログイン後にコピー
CSS の変更

1. ボックス モデル、ドキュメント フロー、および絶対配置の問題を理解します。

2. 画像の幅と高さは固定です。まず、img-list で 3 つの画像の合計幅を設定し、overflow: hidden;! で余分な部分を隠します。右の画像の下にある li 設定をロードしてフローティングします。

3. リストスパンの幅と高さを修正し、背景画像を与えます。最初の画像にデフォルトの黄色のドット画像を設定します。

#banner {
    width:100%;
    padding:0;
    clear: both;
    position: relative;
    height: 400px;
    z-index:1;
}

#img-list {
    display: block;
    width:5760px;
    height: 400px;
    overflow: hidden;
    z-index:1;
    position: relative;
}
#img-list li{
    float: left;
    width:100%;
    height: 400px;
    overflow: hidden;
    /* position: absolute;
    top:0;
    left:0; */
    z-index: 2;
}
#list {
    width:100%;
    height:18px;
    text-align: center;
    position: absolute;
    bottom: 10px;
    z-index: 100;
}
#list > span {
    width:18px;
    height: 18px;
    overflow: hidden;
    display: inline-block;
    margin:0 2px;
    background: url(../images/yuan.png);
    cursor: pointer;
}
#list .on {
    background: url(../images/huanyu.png);
}
ログイン後にコピー
JS エフェクト

1. まず、自動再生機能を設定します

2. 次に、マウスがコンテナ上をスライドすると再生が停止し、マウスがコンテナ全体から離れると次の画像まで再生を続けます。

3. 自動再生関数を定義して呼び出します

var banner=document.getElementById('banner');
  var imglist=document.getElementById('img-list').getElementsByTagName("li");
  var list=document.getElementById('list').getElementsByTagName('span');
var index=0;
  var timer=null;
 //设置自动播放函数
  function autoPlay () {
      if (++index >= imglist.length) {index = 0};
      changeImg(index);
  }

  // 鼠标划过整个容器时停止自动播放
  banner.onmouseover = function () {
      clearInterval(timer);
  }

  // 鼠标离开整个容器时继续播放至下一张
  banner.onmouseout=function(){
      timer=setInterval(autoPlay,2000);
  }
  / 定义并调用自动播放函数
  timer = setInterval(autoPlay, 2000);
ログイン後にコピー

次に、画像の切り替え関数を定義します

// 定义图片切换函数
  function changeImg (curIndex) {
      for (var i = 0; i < imglist.length; i++) {

          imglist[i].style.display = "none";
          list[i].className = "";
      }
      imglist[curIndex].style.display = "block";
      list[curIndex].className = "on";
  }
ログイン後にコピー

最後に、すべてのデジタルナビゲーションを走査して、対応する画像へのスワイプ切り替えを実現し、そのインデックス値を取得する必要があります

for (var i = 0; i < list.length; i++) {
  list[i].index=i;
 list[i].onmouseover = function () {
 clearInterval(timer);
 changeImg(this.index);
 };
ログイン後にコピー

カルーセルのコードはすべて完成しました。

関連する推奨事項:

WeChat アプレット カルーセル チャート関数の開発例

jquery は PC 側のカルーセル チャート コードを実装します

カルーセル チャートを実装する 2 つの JS 方法

以上がネイティブjsは自動カルーセルチャートを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Mar 24, 2024 am 11:27 AM

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?

Huawei携帯電話にWeChatクローン機能を実装する方法 Huawei携帯電話にWeChatクローン機能を実装する方法 Mar 24, 2024 pm 06:03 PM

Huawei携帯電話にWeChatクローン機能を実装する方法

PHP プログラミング ガイド: フィボナッチ数列を実装する方法 PHP プログラミング ガイド: フィボナッチ数列を実装する方法 Mar 20, 2024 pm 04:54 PM

PHP プログラミング ガイド: フィボナッチ数列を実装する方法

Golang がゲーム開発の可能性を可能にする方法をマスターする Golang がゲーム開発の可能性を可能にする方法をマスターする Mar 16, 2024 pm 12:57 PM

Golang がゲーム開発の可能性を可能にする方法をマスターする

PHP ゲーム要件実装ガイド PHP ゲーム要件実装ガイド Mar 11, 2024 am 08:45 AM

PHP ゲーム要件実装ガイド

Golangで正確な除算演算を実装する方法 Golangで正確な除算演算を実装する方法 Feb 20, 2024 pm 10:51 PM

Golangで正確な除算演算を実装する方法

Golangを利用したデータエクスポート機能の実装について詳しく解説 Golangを利用したデータエクスポート機能の実装について詳しく解説 Feb 28, 2024 pm 01:42 PM

Golangを利用したデータエクスポート機能の実装について詳しく解説

PHP を使用した SaaS の実装: 包括的な分析 PHP を使用した SaaS の実装: 包括的な分析 Mar 07, 2024 pm 10:18 PM

PHP を使用した SaaS の実装: 包括的な分析

See all articles