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

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

這篇具有很好參考價值的文章主要介紹了js實現(xiàn)左右切換輪播圖效果。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

實現(xiàn)效果:

自動向右循環(huán)播放

鼠標(biāo)懸停,移出繼續(xù)播放

點擊向右按鈕,跳到下一張

點擊向左按鈕,跳到上一張

保證圖片的過渡效果完整呈現(xiàn)后,才能跳到下一張
底部圓點隨圖片位置切換激活狀態(tài)

js輪播圖代碼左右切換,Javascript實現(xiàn)網(wǎng)站常見動畫,javascript,css,前端

實現(xiàn)思路:

把第一張圖片復(fù)制到最后一張

當(dāng)播放到最后一張時,無縫切換到第一張,然后繼續(xù)放第二張

js輪播圖代碼左右切換,Javascript實現(xiàn)網(wǎng)站常見動畫,javascript,css,前端

注意點↓!

代碼執(zhí)行過快時,可以用異步任務(wù),保證代碼執(zhí)行的先后順序

setTimeout(function(){
    // 跳到第二張
    img_location += 1;
    olist.style.transition = "left 0.5s ease 0s";
    olist.style.left = -650*img_location+"px";
},0) // 時間可以設(shè)置為0

需要頁面自動執(zhí)行時,可以定義函數(shù),模擬點擊行為,不用重寫一遍

 // 定義一個全局函數(shù),自動跳到下一張,方便鼠標(biāo)移入移出時調(diào)用
function move(){
    timer =  setInterval(function(){
    // 每隔1s點擊向右按鈕 
    rightbtn.click();
    },1000)
}

實現(xiàn)代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-809547.html

<!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>
        * {
            margin: 0;
            padding: 0;
        }
        .carousel {
            width: 650px;
            margin: 50px auto;
            position: relative;
            overflow: hidden;
            /* 超出部分隱藏 */
        }
        /* 標(biāo)題-輪播圖 */
        h1 {
            text-align: center;
        }
        .carousel ul {
            list-style: none;
            /* 消除ul自帶圓點 */
        }
        .carousel #list {
            width: 6000px;
            position: relative;
            left: 0px;
            /* 初始位置 */
            transition: left 0.5s ease 0s;
            /*圖片跳轉(zhuǎn)的過渡效果*/
        }
        .carousel #list img {
            width: 650px;
        }
        .carousel #list li {
            float: left;
            /* li排成一排顯示 */
        }
        /* 上一張/下一張控制按鈕 */
        .carousel>a {
            position: absolute;
            width: 30px;
            height: 50px;
            /* 垂直居中,距頂部一半的父元素盒子寬度,再向上移動自身的一半 */
            top: 50%;
            margin-top: -25px;
            background-color: rgba(163, 166, 167, 0.5);
        }
        .carousel>a>img {
            margin-left: -8px;
        }
        .carousel .leftbtn {
            left: 20px;
        }
        .carousel .rightbtn {
            right: 20px;
        }
        /* 底部定位圓點list */
        .carousel #location_list {
            width: 120px;
            position: absolute;
            top: 350px;
            left: 270px;
        }
        .carousel #location_list li {
            float: left;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            margin: 5px;
            border: 1px solid white;
        }
        /* 圓點被激活時的樣式,動態(tài)為圓點增加class */
        .carousel #location_list li.active {
            background-color: bisque;
        }
    </style>
</head>

<body>
    <h1>輪播圖</h1>
    <div class="carousel">
        <!--圖片列表  -->
        <ul id="list">
            <li><img src="images/number/1.jpg" alt="" /></li>
            <li><img src="images/number/2.jpg" alt="" /></li>
            <li><img src="images/number/3.jpg" alt="" /></li>
            <li><img src="images/number/4.jpg" alt="" /></li>
            <li><img src="images/number/5.jpg" alt="" /></li>
        </ul>
        <!-- 左右按鈕 -->
        <a href="javascript:;" class="leftbtn"><img src="./images/lunbo/chevron-left.png" alt="" srcset=""></a>
        <a href="javascript:;" class="rightbtn"><img src="./images/lunbo/chevron-right.png" alt="" srcset=""></a>
        <!-- 圓點列表 -->
        <ul id="location_list">
            <!-- 默認(rèn)激活第一個 -->
            <li class="active"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <script>
        var carousel = document.querySelector(".carousel");
        // 獲取圖片列表ul
        var olist = document.getElementById("list");
        // 獲取定位數(shù)組
        var location_list = document.querySelectorAll('#location_list>li');

        // 向左按鈕
        var leftbtn = document.querySelector('.leftbtn');
        // 向右按鈕
        var rightbtn = document.querySelector('.rightbtn');

        // 將第一張圖片加到最后一張,方便循環(huán)
        var oli = document.querySelector("#list li:first-child")
        olist.innerHTML += oli.innerHTML;

        // 當(dāng)前顯示的圖片定位
        var img_location = 0;
        // 當(dāng)前的圓點定位
        var dot_location = 0
        // 定義一個全局定時器變量
        var timer = null;
        // 默認(rèn)不上鎖,該狀態(tài)為了保證過渡效果能完整呈現(xiàn)
        var islock = false;

        // 定義一個全局函數(shù),自動跳到下一張,方便鼠標(biāo)移入移出時調(diào)用
        function move() {
            timer = setInterval(function () {
                // 每隔1s點擊向右按鈕 
                rightbtn.click();
            }, 1000)
        }
        // 頁面加載后自動調(diào)用,實現(xiàn)自動跳轉(zhuǎn)下一張
        move();

        // 鼠標(biāo)移入,清除定時器
        carousel.onmouseenter = function () {
            clearInterval(timer);
        }
        // 鼠標(biāo)移出,調(diào)用自動播放
        carousel.onmouseleave = function () {
            move();
        }


        // 點擊按鈕切換下一張
        rightbtn.onclick = function () {
            if (islock) { return; }
            islock = true;
            if (img_location === 5) {
                // 清除過渡效果,從最后一張無縫銜接到開頭
                olist.style.transition = "none";
                olist.style.left = "0px";
                img_location = 0;
            }
            // 由于代碼執(zhí)行過快,所以需要放到異步執(zhí)行語句里
            setTimeout(function () {
                // 跳到第二張
                img_location += 1;
                dot_location += 1;
                olist.style.left = -650 * img_location + "px";
                olist.style.transition = "left 0.5s ease 0s";
                // 如果跳轉(zhuǎn)后是第6張圖片,實際上就是第一張圖,圓點應(yīng)該定位在第1個
                if (img_location === 5) {
                    dot_location = 0;
                    location_list[dot_location].className = "active";
                    location_list[4].className = "none";
                } else {
                    // 激活當(dāng)前定位的圓點
                    location_list[dot_location].className = "active";
                    // 上一個圓點取消激活狀態(tài)
                    location_list[dot_location - 1].className = "none"
                }

            }, 0)
            setTimeout(function () {
                islock = false;
            }, 500)
        };

        // 點擊按鈕切換上一張
        leftbtn.onclick = function () {
            if (islock) { return; }
            islock = true;
            // 清除過渡效果,從第一張無縫銜接到最后一張
            if (img_location === 0) {
                img_location = 5;
                olist.style.transition = "none";
                olist.style.left = -650 * img_location + "px";
            }
            // 由于代碼執(zhí)行過快,所以需要放到異步執(zhí)行語句里
            setTimeout(function () {
                // 跳到上一張圖
                img_location -= 1;
                dot_location -= 1;
                olist.style.transition = "left 0.5s ease 0s";
                olist.style.left = -650 * img_location + "px";
                // 如果跳完后是第五張圖,圓點位置也要相應(yīng)變成最后一個
                if (img_location === 4) {
                    dot_location = 4;
                    location_list[dot_location].className = "active";
                    location_list[0].className = "none";
                } else {
                    location_list[dot_location].className = "active";
                    location_list[dot_location + 1].className = "none"
                }
            }, 0)
            setTimeout(function () {
                islock = false;
            }, 500)
        }
    </script>
</body>

</html>

到了這里,關(guān)于js實現(xiàn)左右切換輪播圖效果的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Android Jetpack Compose實現(xiàn)輪播圖效果

    Android Jetpack Compose實現(xiàn)輪播圖效果

    在最近思索如何使用Compose方式改進(jìn)我的開源TMDB電影列表應(yīng)用程序的主屏幕時,一個激動人心的概念浮現(xiàn)在我的腦海中——為什么不整合一個吸引人的輪播圖來展示即將上映的電影呢?在本文中,我將分享我的開發(fā)和實現(xiàn)自定義輪播圖的經(jīng)歷,提供涉及不同步驟的見解。 首先

    2024年02月08日
    瀏覽(126)
  • 【Android】使用ViewPager2實現(xiàn)輪播圖效果,手動/自動輪播圖

    【Android】使用ViewPager2實現(xiàn)輪播圖效果,手動/自動輪播圖

    這里使用Gilde進(jìn)行加載圖片:Glide 使用Gilde可以加載網(wǎng)絡(luò)圖片還可以提高圖片加載性能。 接下來新建一個子布局item_image,加載viewPage2的子布局。 ViewPage2就是使用recyclerView實現(xiàn)的,所以這里使用方法其實類似。 這里直接繼承RecyclerView.Adapter即可,代碼很簡單不必多說。 創(chuàng)建一個

    2024年02月03日
    瀏覽(32)
  • uni-app小程序折疊3D輪播圖效果實現(xiàn)。

    uni-app小程序折疊3D輪播圖效果實現(xiàn)。

    先來看效果圖 實現(xiàn)原理: 通過小程序的觸摸事件,來控制圖片數(shù)組的變化實現(xiàn)動態(tài)樣式;來改變圖片的樣式。 貼上輪播組件完整代碼 組件使用 如果有自動輪播的需求,可以改造下組件加個定時器處理數(shù)組就OK了。

    2024年02月11日
    瀏覽(25)
  • web前端【3】JS基礎(chǔ)-輪播圖【JavaScript、定時器、鼠標(biāo)動作、自動輪播、增加和減少li列表】

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

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

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

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

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

    2024年02月09日
    瀏覽(18)
  • 用Element-UI框架寫輪播圖,左右箭頭點擊輪播,下方小錨點對應(yīng)輪播

    不好意思視頻上傳不成功看鏈接https://www.douyin.com/video/7158792800564235527 注:借鑒官網(wǎng):鏈接: https://element.eleme.cn/#/zh-CN/component/carousel這里有更多的我們需要的框架

    2023年04月08日
    瀏覽(23)
  • JS常用插件 Swiper插件 實現(xiàn)輪播圖

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

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

    2024年02月01日
    瀏覽(85)
  • vue 實現(xiàn)釘釘官網(wǎng)的輪播圖下面功能滾動排版CSS效果

    前言 最近在寫PC端的業(yè)主端時候,發(fā)現(xiàn)傳統(tǒng)的菜單欄比較丑,也不符合實際應(yīng)用(功能頁面并不多-展示為主) 偶然發(fā)現(xiàn)釘釘官網(wǎng)的效果挺有意思的,想著把這個效果復(fù)原過來,然后夸夸搜索了一番。 經(jīng)過一頓的cv打法,加上修修補補把大概的效果整了出來,時間關(guān)系最基礎(chǔ)

    2024年02月11日
    瀏覽(99)
  • JS實現(xiàn)輪播圖的三種簡單方法。

    JS實現(xiàn)輪播圖的三種簡單方法。

    實現(xiàn)思路 這可能是輪播圖最簡單點的實現(xiàn)之一,通過更改圖片的src來實現(xiàn)該效果,首先需要將圖片命名格式統(tǒng)一比如pic01.jpg,pic02.jpg…,再通過js使用定時器去改變img標(biāo)簽里面的src圖片鏈接的名字來實現(xiàn)切換效果。代碼如下: 實現(xiàn)效果 實現(xiàn)思路 這可能是輪播圖最簡單點的實現(xiàn)

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

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

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

    2023年04月08日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包