国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

原生JS輪播圖+自動播放+按鈕切換+鼠標經(jīng)過暫停+底部圓點切換

這篇具有很好參考價值的文章主要介紹了原生JS輪播圖+自動播放+按鈕切換+鼠標經(jīng)過暫停+底部圓點切換。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

手搓一個原生的JS輪播圖,HTML部分就隨意寫了一點,重點的邏輯還是在JS中,可以實現(xiàn)自動播放banner圖片,還有按鈕點擊切換banner和底部小圓點,點擊底部小圓點可以切換banner圖等功能,先上個圖吧,是不是很豐富<`_`>

點擊小圓點切換輪播圖,javascript,前端,css,html

?先放JS部分的代碼吧,主要用到了點擊事件、定時器等技術。

每一步的注釋都已經(jīng)寫好了,請放心食用,如有不清楚的地方可以在評論區(qū)交流一下,如有錯誤的地方還請大佬指指點點。

    //author:奧里給小餅干
    //site:hellodajun.cn
    // 初始數(shù)據(jù)
        const data = [{
                url: './images/banner01.jpg',
                title: '我是banner01',
                color: '#4e6acd'
            }, {
                url: './images/banner02.jpg',
                title: '我是banner02',
                color: '#fa8484'
            }, {
                url: './images/banner03.jpg',
                title: '我是banner03',
                color: '#ed8c03'
            }]
            // 準備工作:先獲取所有需要操作的元素  
        const next = document.querySelector('.next')
        const img = document.querySelector('img')
        const lis = document.querySelectorAll('ul li')
        let i = 0 //下標從0開始計
            //0、封裝render函數(shù)提取公共代碼
        function render() {
            //0.1、 更換數(shù)組中第i個banner圖
            img.src = data[i].url
                //0.2、 刪除已有的 active
            document.querySelector('.active').classList.remove('active')
                // 0.3、添加的 active 
            lis[i].classList.add('active')
        }

        // 1、按鈕的注冊點擊事件
        // 1.1 右側的按鈕點擊事件->實現(xiàn)切換圖片和圓點
        next.addEventListener('click', function() {
            //1.2點擊之后i每次加1
            i++
            //1.3大于等于數(shù)組長度(3) 的時候 下標從0開始
            if (i >= data.length) {
                i = 0
            }
            //渲染頁面
            render()
        })

        // 2、 右側的按鈕點擊事件->實現(xiàn)切換圖片和圓點 
        const prev = document.querySelector('.prev')
        prev.addEventListener('click', function() {
            //2.1、同理 每次點擊i就減1
            i--
            //2.2、小于0 時, 下標從最后一位下標(data.length - 1)開始
            if (i < 0) {
                i = data.length - 1
            }
            //渲染一下
            render()

        })

        // 3、自動播放圖片->定時器 —> 自動執(zhí)行已經(jīng)寫好按鈕點擊事件
        let timer = setInterval(function() {
            //3.1、 自動點擊事件的方法 !直接用就行
            next.click()
        }, 1000)

        // 4、 鼠標經(jīng)過/離開 可以繼續(xù)/暫停 播放  
        const slider = document.querySelector('.slider')
            //4.1 給大盒子注冊鼠標經(jīng)過事件
        slider.addEventListener('mouseenter', function() {
            //4.2 經(jīng)過就清除定時器   
            clearInterval(timer)
        })

        //5.1、鼠標離開事件
        slider.addEventListener('mouseleave', function() {
            // 5.2鼠標離開就重新開啟定時器   
            timer = setInterval(function() {
                // 5.3 定時器中添加自動點擊按鈕
                next.click()
            }, 1000)
        })

        // 6、點擊小圓點切換圖片 
        // 6.1、遍歷偽數(shù)組中的每一個DOM對象(li)
        for (let j = 0; j < lis.length; j++) {
            // 6.2、給小圓點注冊點擊事件
            lis[j].addEventListener('click', function() {
                //6.3、跟i變量保持一致 點擊第j個圓點就切換到第i個banner圖  
                i = j
                    //渲染頁面
                render()
            })
        }
     //author:奧里給小餅干
    //site:hellodajun.cn

差不多就可以了,還要什么自行車。下面就放上CSS+JS的完整的代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-736572.html

 //author:奧里給小餅干
 //site:hellodajun.cn
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>輪播圖點擊切換</title>
    <style>
        * {
            box-sizing: border-box;
        }
        
        .slider {
            position: relative;
            width: 800px;
            height: 320px;
            margin: 0 auto;
            overflow: hidden;
        }
        
        .slider-wrapper {
            width: 100%;
            height: 320px;
        }
        
        .slider-wrapper img {
            display: block;
            width: 100%;
            height: 100%;
        }
        
        .prev {
            position: absolute;
            top: 50%;
            left: 0;
            transform: translateY(-50%);
        }
        
        .next {
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%);
        }
        
        button {
            width: 28px;
            height: 28px;
            appearance: none;
            border: none;
            background: rgba(231, 226, 226, 0.5);
            color: #fff;
            border-radius: 4px;
            cursor: pointer;
        }
        
        .slider-footer .toggle button:hover {
            background: rgba(85, 85, 85, 0.8);
        }
        
        .slider-indicator {
            position: absolute;
            bottom: 5%;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            margin: 0;
            padding: 0;
            list-style: none;
            align-items: center;
        }
        
        .slider-indicator li {
            width: 8px;
            height: 8px;
            margin: 4px;
            border-radius: 50%;
            background: hsl(0, 47%, 96%);
            opacity: 0.4;
            cursor: pointer;
        }
        
        .slider-indicator li.active {
            width: 12px;
            height: 12px;
            opacity: 1;
        }
    </style>
</head>

<body>
    <div class="slider">
        <div class="slider-wrapper">
            <img src="./images/banner01.jpg" alt="" />
        </div>
        <!-- 小圓點 -->
        <ul class="slider-indicator">
            <li class="active"></li>
            <li></li>
            <li></li>
        </ul>
        <!-- 按鈕 -->
        <button class="prev">&lt;</button>
        <button class="next">&gt;</button>

    </div>
    <script>
        //
        // 初始數(shù)據(jù)
        const data = [{
                url: './images/banner01.jpg',
                title: '我是banner01',
                color: '#4e6acd'
            }, {
                url: './images/banner02.jpg',
                title: '我是banner02',
                color: '#fa8484'
            }, {
                url: './images/banner03.jpg',
                title: '我是banner03',
                color: '#ed8c03'
            }]
            // 準備工作:先獲取所有需要操作的元素  
        const next = document.querySelector('.next')
        const img = document.querySelector('img')
        const lis = document.querySelectorAll('ul li')
        let i = 0 //下標從0開始計
            //0、封裝render函數(shù)提取公共代碼
        function render() {
            //0.1、 更換數(shù)組中第i個banner圖
            img.src = data[i].url
                //0.2、 刪除已有的 active
            document.querySelector('.active').classList.remove('active')
                // 0.3、添加的 active 
            lis[i].classList.add('active')
        }

        // 1、按鈕的注冊點擊事件
        // 1.1 右側的按鈕點擊事件->實現(xiàn)切換圖片和圓點
        next.addEventListener('click', function() {
            //1.2點擊之后i每次加1
            i++
            //1.3大于等于數(shù)組長度(3) 的時候 下標從0開始
            if (i >= data.length) {
                i = 0
            }
            //渲染頁面
            render()
        })

        // 2、 右側的按鈕點擊事件->實現(xiàn)切換圖片和圓點 
        const prev = document.querySelector('.prev')
        prev.addEventListener('click', function() {
            //2.1、同理 每次點擊i就減1
            i--
            //2.2、小于0 時, 下標從最后一位下標(data.length - 1)開始
            if (i < 0) {
                i = data.length - 1
            }
            //渲染一下
            render()

        })

        // 3、自動播放圖片->定時器 —> 自動執(zhí)行已經(jīng)寫好按鈕點擊事件
        let timer = setInterval(function() {
            //3.1、 自動點擊事件的方法 !直接用就行
            next.click()
        }, 1000)

        // 4、 鼠標經(jīng)過/離開 可以繼續(xù)/暫停 播放  
        const slider = document.querySelector('.slider')
            //4.1 給大盒子注冊鼠標經(jīng)過事件
        slider.addEventListener('mouseenter', function() {
            //4.2 經(jīng)過就清除定時器   
            clearInterval(timer)
        })

        //5.1、鼠標離開事件
        slider.addEventListener('mouseleave', function() {
            // 5.2鼠標離開就重新開啟定時器   
            timer = setInterval(function() {
                // 5.3 定時器中添加自動點擊按鈕
                next.click()
            }, 1000)
        })

        // 6、點擊小圓點切換圖片 
        // 6.1、遍歷偽數(shù)組中的每一個DOM對象(li)
        for (let j = 0; j < lis.length; j++) {
            // 6.2、給小圓點注冊點擊事件
            lis[j].addEventListener('click', function() {
                //6.3、跟i變量保持一致 點擊第j個圓點就切換到第i個banner圖  
                i = j
                    //渲染頁面
                render()
            })
        }
    </script>
</body>
</html>
 //author:奧里給小餅干
 //site:hellodajun.cn

到了這里,關于原生JS輪播圖+自動播放+按鈕切換+鼠標經(jīng)過暫停+底部圓點切換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • js實現(xiàn)左右切換輪播圖效果

    js實現(xiàn)左右切換輪播圖效果

    實現(xiàn)效果: 自動向右循環(huán)播放 鼠標懸停,移出繼續(xù)播放 點擊向右按鈕,跳到下一張 點擊向左按鈕,跳到上一張 保證圖片的過渡效果完整呈現(xiàn)后,才能跳到下一張 底部圓點隨圖片位置切換激活狀態(tài) 實現(xiàn)思路: 把第一張圖片復制到最后一張 當播放到最后一張時,無縫切換到

    2024年01月20日
    瀏覽(28)
  • 原生 JS 實現(xiàn)一個簡單輪播圖

    原生 JS 實現(xiàn)一個簡單輪播圖

    在動手實現(xiàn)輪播圖之前,我們先來明確一下要實現(xiàn)的效果。 默認自動輪播,每隔4秒切換一張圖片 鼠標點擊任一個小圓點即可切換到對應的圖片 鼠標移入輪播區(qū)域時,兩側出現(xiàn)切換圖片的按鈕,點擊按鈕分別切換到上(下)一張圖片 因此,輪播圖可以分為三個主要部分,首

    2024年02月09日
    瀏覽(18)
  • HTML+CSS+JavaScript:輪播圖自動播放

    HTML+CSS+JavaScript:輪播圖自動播放

    輪播圖如下圖所示,需求是每隔一秒輪播圖自動切換一次 ? 以下是缺失JS部分的代碼,感興趣的小伙伴可以先自己試著寫一寫 1、將代碼素材在瀏覽器中打開,并按F12進入開發(fā)者模式,分析各個HTML標簽在輪播圖中的位置及作用 2、獲取相關元素 3、利用間歇函數(shù)實現(xiàn)一秒切換一

    2024年02月14日
    瀏覽(31)
  • 使用vant+video.js實現(xiàn)輪播圖圖片和視頻輪播播放

    使用vant+video.js實現(xiàn)輪播圖圖片和視頻輪播播放

    先上效果圖 1. 安裝 2. 在需要用到的頁面引入 3. 具體頁面使用 假設傳給子組件的數(shù)組結構 按照步驟來使用,其他地方視頻播放情況都還好,至少安卓是好的,只是點擊播放和暫停時候,ios需要點擊多下才能觸發(fā)點擊事件; 然后以為是video.js插件可能沒更新,ios版本迭代超過

    2023年04月08日
    瀏覽(29)
  • web前端【3】JS基礎-輪播圖【JavaScript、定時器、鼠標動作、自動輪播、增加和減少li列表】

    web前端【3】JS基礎-輪播圖【JavaScript、定時器、鼠標動作、自動輪播、增加和減少li列表】

    一、實驗題目: 輪播圖 二、實驗內(nèi)容簡介 1.整體布局:圖片、左右按鈕、數(shù)字列表、添加刪除按鈕 2、左右箭頭滾動 3、小圓點滾動 4、自動輪播 5、鼠標動作:指向和離開 6、添加與刪除 三、實驗過程 1. 需求分析 整體布局:設計一個輪播圖,中間部分為自動輪播的圖片展示

    2024年02月04日
    瀏覽(26)
  • 前端Vue自定義輪播圖視頻播放組件 仿京東商品詳情輪播圖視頻Video播放效果 可圖片預覽

    前端Vue自定義輪播圖視頻播放組件 仿京東商品詳情輪播圖視頻Video播放效果 可圖片預覽

    隨著技術的發(fā)展,開發(fā)的復雜度也越來越高,傳統(tǒng)開發(fā)方式將一個系統(tǒng)做成了整塊應用,經(jīng)常出現(xiàn)的情況就是一個小小的改動或者一個小功能的增加可能會引起整體邏輯的修改,造成牽一發(fā)而動全身。通過組件化開發(fā),可以有效實現(xiàn)單獨開發(fā),單獨維護,而且他們之間可以隨

    2024年02月15日
    瀏覽(27)
  • Html+CSS+JS輪播圖:手動輪播,自動輪播
  • vue3 實現(xiàn)門戶網(wǎng)站頁面鼠標滾輪控制頁面上下滾動---類似輪播圖

    案例參考:首頁_CNESA 儲能研究平臺 //監(jiān)聽鼠標滾動事件 ?window.addEventListener(\\\'mousewheel\\\', debounce(methodB,300), true)||window.addEventListener(\\\"DOMMouseScroll\\\",debounce(methodB,300),false) const debounce = (func, wait) ={ ? ? ? ? let timeout; ? ? ? ? return ?function() { ? ? ? ? ? ? let context = this; ? ? ? ? ? ?

    2024年02月12日
    瀏覽(172)
  • JS常用插件 Swiper插件 實現(xiàn)輪播圖

    JS常用插件 Swiper插件 實現(xiàn)輪播圖

    Swiper 是一款免費以及輕量級的移動設備觸控滑塊的js框架 中文官網(wǎng)地址: https://www.swiper.com.cn/ 點擊查看 Swiper演示 ,里面的功能和樣式十分豐富,根據(jù)自己的需求選擇 中文教程 中詳細介紹了如何使用Swiper API文檔 中介紹了各個模塊以及參數(shù)的詳細信息,遇到不明白的參數(shù)可以

    2024年02月01日
    瀏覽(85)
  • 使用JS來實現(xiàn)輪播圖的效果

    使用JS來實現(xiàn)輪播圖的效果

    最好今天分享一個使用JS制作的輪播圖效果 個人名片: ??? 作者簡介:一名大一在校生,web前端開發(fā)專業(yè) ???? 個人主頁:幾何小超 ??? 座右銘:懶惰受到的懲罰不僅僅是自己的失敗,還有別人的成功。 ???**學習目標:? 堅持每一次的學習打卡 ,學好前端 首先是HTML部分

    2024年01月20日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包