欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生JS實(shí)現(xiàn)圖片輪播 JS實(shí)現(xiàn)小廣告插件

 更新時(shí)間:2021年09月22日 11:42:30   作者:zxt_x  
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)圖片輪播、小廣告插件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

最近想用原生JS多實(shí)現(xiàn)一些小功能,現(xiàn)在寫(xiě)到博客里,大家可以借鑒,有問(wèn)題歡迎指出。

輪播圖

需求:

圖片循環(huán)輪播,可點(diǎn)擊左右切換,切換狀態(tài)與<li>綁定,鼠標(biāo)移入圖片懸停,鼠標(biāo)移出圖片繼續(xù)循環(huán)切換。

<!DOCTYPE html>
 
<html lang="en">
 
<head>
 
    <meta charset="UTF-8">
    <title>原生js輪播圖片</title>
 
</head>
 
<style>
    .container{
        width: 100%;
        height: 500px;
        position: relative;
    }

    .content{
        width: 900px;
        height: 450px;
        position: relative;
        overflow: hidden; 
        border: 1px solid seagreen; 
        margin: 0 auto;
    }
 
    .slider-img{ 
        width: 900px; 
        height: 450px; 
        margin: 10px auto; 
    }
 
    .slider-img img{
        vertical-align: top;
        width: 800px;
        height: 400px;
        margin: 10px 50px;
        display: block;
 
    }
 
    .left{
        margin-top: -300px;
        margin-left: 50px;
        width: 100px;
        height: 100px;
    }
 
    .left img,.right img{
        width: 100px;
        height: 100px;
    }
 
    .right{
        margin-top: -100px;
        margin-right: 50px;
        float: right;
        width: 100px;
        height: 100px;
 
    }
 
 
 
    .dot{
        position: relative;
        top: 23%;
        left: 43%;
        width: 50%;
    }
 
    .dotul{
        width: 450px;
    }

    .dotul li{ 
        width: 20px; 
        height: 20px;
        background-color: seagreen;
        list-style: none;
        float: left;
        border-radius: 20px; 
        margin-left: 15px; 
        z-index: 999; 
        cursor: pointer; 
    }
 
    .active{
        background-color: orangered !important;
    }
 
 
 
</style>
 
<body>
 
    <div class="container" id="container">
 
        <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代碼,使用時(shí)記得在html里引入JS。

var container = document.getElementById("container"); 
var content = document.getElementById("content");
var slider = document.getElementById("slider");
var img = document.getElementById("img");
var ul = document.getElementById("ul"); 
var li = document.getElementsByTagName("li"); 
var left = document.getElementById("left"); 
var right = document.getElementById("right"); 
var num = 0;
var timer = null;    
var picList = ["./img/88.jpg","./img/are.jpg","./img/family.jpg","./img/one.jpg"];
//將li與list下標(biāo)對(duì)應(yīng)
 

    //設(shè)置展示圖片的方法,展示時(shí),li的圓點(diǎn)與圖片綁定在一起
    ShowPicture = function() {
       img.src = picList[num];
       for(var i = 0 ; i < li.length;i++) {
           li[i].className = '';
       }
       li[num].className = 'active';
    }
  
    //左點(diǎn)擊,如果已經(jīng)是第一張了就返回最后一張

    left.onclick = function() {
        num--;
        if(num < 0) {
           num = picList.length-1;
        }
        ShowPicture();
    }
  

    //右點(diǎn)擊,若已經(jīng)是最后一張返回第一張
    right.onclick = function() {
        num++;
        if(num >= picList.length) {   //3
            num = 0;
        }
        ShowPicture();
    }
    
     //實(shí)現(xiàn)點(diǎn)擊圓點(diǎn)跳轉(zhuǎn)對(duì)應(yīng)圖片,將li與list下標(biāo)對(duì)應(yīng)list.index=li.index
   
     for(var i = 0; i < picList.length ; i++) {
         li[i].index = i;
         li[i].onclick = function() {
             num = this.index;
             ShowPicture();
         }
     }

    //自動(dòng)輪播圖片,每次調(diào)用要記得清除定時(shí)器,并在調(diào)用后回歸定時(shí)器,防止時(shí)間差越變?cè)酱?

    autoChange = function() {
        clearInterval(timer);
        timer = setInterval(() => {
            num++;
            num %= picList.length;
            ShowPicture();
        }, 3000);
        return timer;
    }
    window.onload = autoChange;

   
    //事件
    img.onmouseover = function() {
        clearInterval(timer);
    }
    img.onmouseleave = autoChange;

廣告插件

需求:頁(yè)面加載結(jié)束后彈出廣告,廣告輪播展示,鼠標(biāo)移入懸停,移出繼續(xù)展示,點(diǎn)X可刪除。

<div id="win">
        <img id = "img" />
        <button id = "ad_btn">X</button>  
        //我這是練習(xí),叉號(hào)用的X替代,自己做項(xiàng)目加入時(shí)可以換成Icon
</div>
//頁(yè)面加載結(jié)束彈出廣告,廣告切換展示,點(diǎn)擊X可刪除,
var ad = document.getElementById('win');
var img = document.getElementById('img');
var ad_btn  = document.getElementById('ad_btn');
var timer;
window.onload = function () {
    // clearInterval(timer);
    timer = setTimeout(() => {
            ad.style.display = 'block';  
        }, 2000);
        change();
}

var count=0;
var num = 0;
var imgTimer = null;
//picture srcList
var picList = ['../img/88.jpg','../img/one.jpg','../img/family.jpg','../img/are.jpg'];
function change() {
    clearInterval(imgTimer)
    imgTimer = setInterval(() => {
       if(count === picList.length) {
           count = 0;
           resetShow();
       } else {
           startShow();
       }
       count++;          
   }, 3000);
}
function resetShow() {
    img.src = picList[0];
    num = 0;
    startShow();
}

function startShow() {
    if(num < picList.length) {
        img.src = picList[num++];
    } else {
        resetShow();
    }
   
}


ad_btn.addEventListener('click' , (e)=>{
    ad.style.display = 'none';
    clearTimeout(timer)
});

ad.addEventListener('mouseover' , ()=>{
    clearInterval(imgTimer);
})
ad.onmouseleave = function() {
    change();
}

實(shí)現(xiàn)展示:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • event對(duì)象的方法 兼容多瀏覽器

    event對(duì)象的方法 兼容多瀏覽器

    event對(duì)象的方法 兼容多瀏覽器 同時(shí)兼容ie和ff的寫(xiě)法
    2009-06-06
  • Bootstrap導(dǎo)航條的使用和理解3

    Bootstrap導(dǎo)航條的使用和理解3

    這篇文章主要為大家詳細(xì)介紹了關(guān)于Bootstrap導(dǎo)航條的使用和理解的學(xué)習(xí)記錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript組合模式---引入案例分析

    JavaScript組合模式---引入案例分析

    這篇文章主要介紹了JavaScript組合模式,結(jié)合具體案例形式分析了JavaScript組合模式定義、應(yīng)用與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • 一文讀懂JavaScript 中的延遲加載屬性模式

    一文讀懂JavaScript 中的延遲加載屬性模式

    開(kāi)發(fā)人員在javascript類中為實(shí)例中需要的任何書(shū)籍創(chuàng)建屬性,但是如果實(shí)例中可用之前需要計(jì)算某些數(shù)據(jù)該如何處理呢,今天小編通過(guò)本文給大家分享JavaScript 中的延遲加載屬性模式,一起看看吧
    2021-06-06
  • JavaScript中子函數(shù)訪問(wèn)外部變量的3種解決方法

    JavaScript中子函數(shù)訪問(wèn)外部變量的3種解決方法

    任何在函數(shù)中定義的變量,都可認(rèn)為是私有變量,因?yàn)椴荒茉诤瘮?shù)外部訪問(wèn)這些變量,這篇文章主要給大家介紹了關(guān)于JavaScript中子函數(shù)訪問(wèn)外部變量的3種解決方法,需要的朋友可以參考下
    2021-06-06
  • js全選實(shí)現(xiàn)和判斷是否有復(fù)選框選中的方法

    js全選實(shí)現(xiàn)和判斷是否有復(fù)選框選中的方法

    這篇文章主要介紹了js全選實(shí)現(xiàn)和判斷是否有復(fù)選框選中的方法,涉及javascript操作復(fù)選框的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 用ES6的class模仿Vue寫(xiě)一個(gè)雙向綁定的示例代碼

    用ES6的class模仿Vue寫(xiě)一個(gè)雙向綁定的示例代碼

    本篇文章主要介紹了用ES6的class模仿Vue寫(xiě)一個(gè)雙向綁定的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 比例尺、縮略圖、平移縮放之百度地圖添加控件方法

    比例尺、縮略圖、平移縮放之百度地圖添加控件方法

    這篇文章主要介紹了比例尺、縮略圖、平移縮放之百度地圖添加控件方法,大家都知道百度地圖API中提供了豐富的控件,您還可以通過(guò)Control類來(lái)實(shí)現(xiàn)自定義控件,需要的朋友可以參考下
    2015-08-08
  • 淺談Javascript中的12種DOM節(jié)點(diǎn)類型

    淺談Javascript中的12種DOM節(jié)點(diǎn)類型

    DOM是javascript操作網(wǎng)頁(yè)的接口,全稱為文檔對(duì)象模型(Document Object Model)。本文將主要說(shuō)明DOM節(jié)點(diǎn)類型,有需要的可以參考借鑒。
    2016-08-08
  • Bootstrap Table從零開(kāi)始

    Bootstrap Table從零開(kāi)始

    Bootstrap Table從零開(kāi)始,這篇文章主要介紹了Bootstrap Table的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論