最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js原生輪播圖插件制作

 更新時間:2021年10月04日 09:16:33   作者:墨者羽晨  
這篇文章主要為大家詳細(xì)介紹了js原生輪播圖插件制作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js原生輪播圖插件制作的具體代碼,供大家參考,具體內(nèi)容如下

調(diào)用時也只需要寫一個DIV即可

調(diào)用的js部分配置內(nèi)容:

傳入輪播圖需顯示的位置(div)

傳入圖片和點擊跳轉(zhuǎn)的鏈接

話不多說,上代碼

HTML

<div id="banner"></div>

HTML文檔內(nèi)的<script>,這里是輪播圖的配置內(nèi)容,一共兩個參數(shù),第一個是需要傳入的DIV(輪播圖所顯示的區(qū)域),第二個參數(shù)是一個數(shù)組,數(shù)組里的元素是一個個對象,對象里第一個屬性imgUrl表示圖片,第二個屬性link表示跳轉(zhuǎn)鏈接

一個數(shù)組元素就是一張圖片,不限數(shù)量,可自適應(yīng)

<script>
        bannerArea(document.getElementById("banner"),[
            {imgUrl:"圖片",
            link:"跳轉(zhuǎn)鏈接"
        },
            {imgUrl:"圖片",
            link:"跳轉(zhuǎn)鏈接"
        },
            {imgUrl:"圖片",
            link:"跳轉(zhuǎn)鏈接"
        }
        ])
</script> 

JS插件內(nèi)容

// 兩個參數(shù),第一個輪播圖區(qū)域,第二個是配置
function 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();//創(chuàng)建一個區(qū)域來顯示圖片
    
    initNumber();//創(chuàng)建區(qū)域顯示角標(biāo)
    
    setStatus();//設(shè)置狀態(tài)
    
    autoChange();//自動切換
 
    //下面是局部函數(shù)
 
    //創(chuàng)建圖片,并且設(shè)置樣式
    function initImg() {
        imgArea.style.width = "100%";
        imgArea.style.height = "100%";
        imgArea.style.display = "flex";
        imgArea.style.overflow = "hidden";
        for (let i = 0; i < options.length; i++) {
            var obj = options[i];
            var img = document.createElement("img");
            img.src = obj.imgUrl;
            img.style.width = "100%";
            img.style.height = "100%";
            img.style.margin = "0";
            img.addEventListener("click", function () {
                location.href = options[i].link;
            })
            imgArea.appendChild(img);
        }
        imgArea.addEventListener("mouseenter", function () {
            clearInterval(changeTimer);
            changeTimer = null;
        })
        imgArea.addEventListener("mouseleave", function () {
            autoChange();
        })
        areaDom.appendChild(imgArea);
    }
    //創(chuàng)建角標(biāo)元素和設(shè)置樣式
    function initNumber() {
        numberArea.style.textAlign = "center";
        numberArea.style.marginTop = "-25px";
        for (let i = 0; i < options.length; i++) {
            var sp = document.createElement("span");
            sp.style.width = "12px";
            sp.style.height = "12px";
            sp.style.background = "lightgray";
            sp.style.display = "inline-block";
            sp.style.margin = "0 7px";
            sp.style.borderRadius = "50%";
            sp.style.cursor = "pointer";
            sp.addEventListener("click", function () {
                curIndex = i;
                setStatus();
            })
            numberArea.appendChild(sp);
        }
        areaDom.appendChild(numberArea);
    }
 
    //設(shè)置角標(biāo)區(qū)域狀態(tài)
    function setStatus() {
        //設(shè)置圓圈的背景顏色
        for (var i = 0; i < options.length; i++) {
            if (i === curIndex) {
                //設(shè)置背景顏色為選擇
                numberArea.children[i].style.background = "rgb(222 57 57)";
            } else {
                //非選擇
                numberArea.children[i].style.background = "lightgray";;
            }
 
        }
        //顯示圖片
        var start = parseInt(imgArea.children[0].style.marginLeft);
        var end = curIndex * -100;
        var dis = end - start;
        var duration = 500;
        var speed = dis / duration;
        if (timer) {
            clearInterval(timer);
        }
        timer = setInterval(function () {
            start += speed * 20;
            imgArea.children[0].style.marginLeft = start + "%";
            if (Math.abs(end - start) < 1) {
                imgArea.children[0].style.marginLeft = end + "%";
                clearInterval(timer);
            }
        }, 20)
    }
    //自動切換
    function autoChange() {
        if (changeTimer) {
            return;
        }
        changeTimer = setInterval(function () {
            if (curIndex === options.length - 1) {
                curIndex = 0;
            } else {
                curIndex++;
            }
            setStatus();
        }, changeDuration)
    }
 
}

輪播圖速度(切換時間)可在插件代碼中    var changeDuration = 1000;//間隔   一句里調(diào)整

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

相關(guān)文章

  • JavaScript預(yù)解析,對象詳解

    JavaScript預(yù)解析,對象詳解

    這篇文章主要介紹了JavaScript預(yù)解析,對象的的相關(guān)資料,小編覺得這篇文章寫的還不錯,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-11-11
  • JavaScript判斷數(shù)組類型的方法

    JavaScript判斷數(shù)組類型的方法

    這篇文章主要介紹了JavaScript判斷數(shù)組類型的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • javascript表單驗證和Window詳解

    javascript表單驗證和Window詳解

    這篇文章主要詳細(xì)介紹了javascript表單驗證和Window,并附上了示例代碼,非常使用,對于我們更好的了解表單驗證和Window很有幫助,這里推薦給大家
    2014-12-12
  • bootstrap-table獲取表格數(shù)據(jù)的多種方式

    bootstrap-table獲取表格數(shù)據(jù)的多種方式

    這篇文章主要介紹了bootstrap-table獲取表格數(shù)據(jù)的多種方式,bootstrap-table獲取值得兩種方式,一種是通過data獲取,一種是通過url獲取,需要的朋友可以參考下
    2023-10-10
  • javascript forEach通用循環(huán)遍歷方法

    javascript forEach通用循環(huán)遍歷方法

    循環(huán)遍歷一個元素是開發(fā)中最常見的需求之一,那么讓我們來看一個由框架BASE2和Jquery的結(jié)合版本吧.
    2010-10-10
  • JavaScript中for-in遍歷方式示例介紹

    JavaScript中for-in遍歷方式示例介紹

    for-in遍歷方式的循環(huán)計數(shù)器是字符串類型,遍歷對象時為對象屬性/方法名,遍歷數(shù)組時為數(shù)組元素下標(biāo)索引,與普通的for循環(huán)不同,需要的朋友可以參考下
    2014-02-02
  • Bootstrap整體框架之JavaScript插件架構(gòu)

    Bootstrap整體框架之JavaScript插件架構(gòu)

    這篇文章主要介紹了Bootstrap整體框架之JavaScript插件架構(gòu)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript數(shù)組常用操作技巧匯總

    JavaScript數(shù)組常用操作技巧匯總

    這篇文章主要介紹了JavaScript數(shù)組常用操作技巧,以實例形式匯總了針對數(shù)組的查找、連接、排序及迭代等各種常見操作技巧,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • javascript將url解析為json格式的兩種方法

    javascript將url解析為json格式的兩種方法

    本篇文章主要介紹了javascript將url解析為json格式的兩種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 如何使用JS獲取IE上傳文件路徑(IE7,8)

    如何使用JS獲取IE上傳文件路徑(IE7,8)

    本篇文章是對使用JS獲取IE上傳文件路徑的實現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07

最新評論

东乡| 金华市| 故城县| 平谷区| 监利县| 城口县| 色达县| 台中县| 阳曲县| 营口市| 娱乐| 开鲁县| 浮山县| 海兴县| 新源县| 桂林市| 什邡市| 巢湖市| 曲周县| 三台县| 东阳市| 墨竹工卡县| 三穗县| 贵港市| 射阳县| 卓资县| 襄樊市| 疏附县| 华蓥市| 泰来县| 桃园市| 莱州市| 华阴市| 湖口县| 寿阳县| 遵义市| 济宁市| 麦盖提县| 榆中县| 涡阳县| 保靖县|