轮播图

轮播图里面的知识点还是很多的,分享出来大家一起交流!
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./global.css">
    <style>
        .container {
             600px;
            height: 600px;
            border: 1px solid;
            background-image: url("../DOM/img/1.jpg") no-repeat;
            background-size: 600px 600px;
            position: relative;
        }
        ul,
        ol {
            padding: 0;  
            list-style: none;
            display: flex;
        }

        ul {
             100%;
            box-sizing: border-box;
            justify-content: space-between;
            padding: 0 10px;
            position: absolute;
            top: 50%;
            transform: translate(0, -50%);
        }

        ul>li {
             49px;
            height: 49px;
            background: url("../轮播图/img/shutter_prevBtn.png");
        }
        ul>li:nth-child(2) {
            transform: rotate(180deg);
        }

        ul>li:hover {
            background-position: 0 -49px;
        }

        ol {
             20%;
            justify-content: space-around;
            position: absolute;
            bottom: 50px;
            left: 50%;
            transform: translate(-50%, 0);
        }

        ol>li {
             15px;
            height: 15px;
            border-radius: 50%;
            background-color: rgba(255, 255, 255, 0.6);
        }

        .bgWhite {
            background-color:orangered;
        }
    </style>
</head>
<body>
    <div class="container">
        <ul>
            <li></li>
            <li></li>
        </ul>
        <ol>
            <li class="bgWhite"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ol>
    </div>
    <script>
        let imgArr = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg"];
        let i = 0, len = imgArr.length;
        let container = document.querySelector(".container");
        let rignt_btn = document.querySelector(".container>ul>li:last-child");
        let left_btn = document.querySelector(".container>ul>li:first-child");
        let circles = document.querySelectorAll(".container>ol>li");
        // 正放
        function running() {
            i++;
            if (i > len - 1) {
                i = 0;
            }
            container.style.backgroundImage = `url("../轮播图/img/${imgArr[i]}")`;
            renderCircle();
        }
        let timer = setInterval(running, 500);

        // 移入停止
        container.onmouseenter = function () {
            clearInterval(timer);
        }
        // 移出继续
        container.onmouseleave = function () {
            timer = setInterval(running, 500);
        }
        // 下一页
        rignt_btn.onclick = function () {
            running();
        }
        // 上一页
        left_btn.onclick = function () {
            backward();
        }
        // 倒放
        function backward() {
            i--;
            if (i < 0) {
                i = len - 1;
            }
            container.style.backgroundImage = `url("../轮播图/img/img/${imgArr[i]}")`;
            // 重新渲染 circle
            renderCircle();
        }
        // 圆点渲染
        function renderCircle() {
            for (let item of circles) {
                item.className = "";
            }
            circles[i].className = "bgWhite";
        }
        // 点击圆点
        circles.forEach((item, index) => {
            item.onclick = function () {
                // console.log(index);
                i = index;
                i--;
                running();
            }
        });
    </script>
</body>

</html>
原文地址:https://www.cnblogs.com/Yangyecool/p/13184772.html