6、轮播图案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
     
            margin: 0;
            padding: 0;
        }

        #box {
     
            position: relative;
            margin: 30px auto;
            width: 400px;
            height: 450px;
            border: 10px dotted red;
        }
        #parent {
     
            width: 400px;
            height: 300px;
            border: 2px solid blue;
            overflow: hidden;
        }
        #parent img {
     
            float: left;
            width: 400px;
            height: 300px;
        }
        ul {
     
            width: 400%;
            height: 400px;
            list-style: none;
        }
        ul>li {
     
            float: left;
        }
        #list {
     
            position: absolute;
            top: 250px;
            left: 100px;
        }
        #list>li {
     
            margin: 0 5px;
            width: 30px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            border: 1px solid black;
            background-color: white;
        }
        #left {
     
            top: 130px;
            left: 0;
            width: 30px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            background-color: aquamarine;
            position: absolute;
        }
        #right {
     
            top: 130px;
            right: 0;
            width: 30px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            background-color: aquamarine;
            position: absolute;
        }
    </style>
</head>

<body>
    <div id="box">
        <!-- 轮播图 -->
        <div id="parent">
            <ul>
                <li><img src="./images/1.jpg" alt=""></li>
                <li><img src="./images/2.jpg" alt=""></li>
                <li><img src="./images/3.jpg" alt=""></li>
                <li><img src="./images/4.jpg" alt=""></li>
            </ul>
        </div>
        <!-- 四个小点 -->
        <ul id="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
        <!-- 左按钮 -->
        <div id="left"></div>
        <!-- 右按钮 -->
        <div id="right"></div>
    </div>
</body>
<script>

    var left = document.getElementById("left")
    var right = document.getElementById("right")
    var liObj = document.querySelectorAll("#list>li")

    var timer
    var num = 0
    // 1、自动轮播
    var parent = document.getElementById("parent")
    var imgObj = document.querySelectorAll("#parent img")[0]
    auto()
    function auto() {
     
        timer = setInterval(move, 2000)
    }
    function move() {
     
        num++
        if (num > 3) {
     
            num = 0
        }
        if (num < 0) {
     
            num = 3
        }
        // parent.scrollLeft = imgObj.clientWidth * num
        slow(parent.scrollLeft, imgObj.clientWidth * num)
        changeColor()
    }

    // 2、缓慢移动
    function slow(start, end) {
     
        var maxStep = 10
        var step = 0
        var every = (end - start) / maxStep
        var slowMove = setInterval(function () {
     
            step++
            if (step <= maxStep) {
     
                parent.scrollLeft = every + parent.scrollLeft
            } else {
     
                clearInterval(slowMove)
            }
        }, 50)
    }
    // 3、点击四个小点轮播
    for (var i = 0; i < liObj.length; i++) {
     
        liObj[i].onclick = function () {
     
            clearInterval(timer)
            for (var j = 0; j < liObj.length; j++) {
     
                if (liObj[j] == this) {
     
                    num = j
                    slow(parent.scrollLeft, imgObj.clientWidth * j)
                    changeColor()
                }
            }
            auto()
        }
    }
    // 4、小点点击变颜色
    function changeColor() {
     
        for (var i = 0; i < liObj.length; i++) {
     
            liObj[i].style.backgroundColor = "white"
        }
        liObj[num].style.backgroundColor = "pink"
    }
    // 5、单击右按钮
    right.onclick = function () {
     
        clearInterval(timer)
        move()
        auto()
    }
    // 6、单击左按钮
    left.onclick = function () {
     
        clearInterval(timer)
        num -= 2
        move()
        auto()
    }
</script>
</html>

image-20240212200852442

相关推荐

  1. Swiper

    2024-02-20 10:08:02       11 阅读
  2. 的制作

    2024-02-20 10:08:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 10:08:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 10:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 10:08:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 10:08:02       20 阅读

热门阅读

  1. ubuntu18 环境安装

    2024-02-20 10:08:02       30 阅读
  2. k8s容器以及基础设施优化

    2024-02-20 10:08:02       27 阅读
  3. iOS 使用Image I/O 实现超大图片降采样

    2024-02-20 10:08:02       27 阅读
  4. axios 官网速通

    2024-02-20 10:08:02       29 阅读
  5. 使用VBA将多个txt批量转换成excel表并保存

    2024-02-20 10:08:02       30 阅读
  6. classpath:springmvc.xml

    2024-02-20 10:08:02       28 阅读
  7. 沁恒CH32V30X学习笔记10---pwm输出

    2024-02-20 10:08:02       26 阅读
  8. CSS的定位position,字体图标,修饰

    2024-02-20 10:08:02       31 阅读