js写轮播图,逐步完善

news2024/11/20 7:10:18

目录

1、自动轮播

2、点击更换

 3、自动播放加左右箭头点击切换

4、完整版轮播图


1、自动轮播

用定时器setInterval()来写,可以实现自动播放

<!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 {
            width: 560px;
            height: 400px;
            overflow: hidden;
        }

        .slider-wrapper {
            width: 100%;
            height: 320px;
        }

        .slider-wrapper img {
            width: 100%;
            height: 100%;
            display: block;
        }

        .slider-footer {
            height: 80px;
            background-color: rgb(100, 67, 68);
            padding: 12px 12px 0 12px;
            position: relative;
        }

        .slider-footer .toggle {
            position: absolute;
            right: 0;
            top: 12px;
            display: flex;
        }

        .slider-footer .toggle button {
            margin-right: 12px;
            width: 28px;
            height: 28px;
            appearance: none;
            border: none;
            background: rgba(255, 255, 255, 0.1);
            color: #fff;
            border-radius: 4px;
            cursor: pointer;
        }

        .slider-footer .toggle button:hover {
            background: rgba(255, 255, 255, 0.2);
        }

        .slider-footer p {
            margin: 0;
            color: #fff;
            font-size: 18px;
            margin-bottom: 10px;
        }

        .slider-indicator {
            margin: 0;
            padding: 0;
            list-style: none;
            display: flex;
            align-items: center;
        }

        .slider-indicator li {
            width: 8px;
            height: 8px;
            margin: 4px;
            border-radius: 50%;
            background: #fff;
            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/slider01.jpg" alt="" />
        </div>
        <div class="slider-footer">
            <p>对人类来说会不会太超前了?</p>
            <ul class="slider-indicator">
                <li class="active"></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <div class="toggle">
                <button class="prev">&lt;</button>
                <button class="next">&gt;</button>
            </div>
        </div>
    </div>
    <script>
        // 1. 初始数据
        const sliderData = [
            { url: './images/slider01.jpg', title: '对人类来说会不会太超前了?', color: 'rgb(100, 67, 68)' },
            { url: './images/slider02.jpg', title: '开启剑与雪的黑暗传说!', color: 'rgb(43, 35, 26)' },
            { url: './images/slider03.jpg', title: '真正的jo厨出现了!', color: 'rgb(36, 31, 33)' },
            { url: './images/slider04.jpg', title: '李玉刚:让世界通过B站看到东方大国文化', color: 'rgb(139, 98, 66)' },
            { url: './images/slider05.jpg', title: '快来分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },
            { url: './images/slider06.jpg', title: '哔哩哔哩小年YEAH', color: 'rgb(166, 131, 143)' },
            { url: './images/slider07.jpg', title: '一站式解决你的电脑配置问题!!!', color: 'rgb(53, 29, 25)' },
            { url: './images/slider08.jpg', title: '谁不想和小猫咪贴贴呢!', color: 'rgb(99, 72, 114)' },
        ]

        //获取元素
        const img = document.querySelector('.slider-wrapper img')
        const p = document.querySelector(".slider-footer p")
        const footer = document.querySelector('.slider-footer')
        const slider = document.querySelector(".slider")
        const lis = document.querySelectorAll('.slider-indicator li')
        const next = document.querySelector('.toggle .next')
        const prev = document.querySelector('.toggle .prev')

        let i = 0

        //开启定时器
        let timer = setInterval(function () {

            i++
            if (i === sliderData.length) {
                i = 0
            }
            // 设置图片
            img.src = sliderData[i].url
            // 设置标题
            p.innerHTML = sliderData[i].title

            // 设置底部区域背景色
            footer.style.backgroundColor = sliderData[i].color
            // 设置小圆圈样式
            // 把其他某个li的active移除 再给对应的li设置
            document.querySelector('.slider-indicator .active').classList.remove('active')

            lis[i].classList.add('active')

        }, 1000)
    </script>
</body>

</html>

2、点击更换

点击那个小圆点就跳到对应位置

<!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 {
      width: 560px;
      height: 400px;
      overflow: hidden;
    }

    .slider-wrapper {
      width: 100%;
      height: 320px;
    }

    .slider-wrapper img {
      width: 100%;
      height: 100%;
      display: block;
    }

    .slider-footer {
      height: 80px;
      background-color: rgb(100, 67, 68);
      padding: 12px 12px 0 12px;
      position: relative;
    }

    .slider-footer .toggle {
      position: absolute;
      right: 0;
      top: 12px;
      display: flex;
    }

    .slider-footer .toggle button {
      margin-right: 12px;
      width: 28px;
      height: 28px;
      appearance: none;
      border: none;
      background: rgba(255, 255, 255, 0.1);
      color: #fff;
      border-radius: 4px;
      cursor: pointer;
    }

    .slider-footer .toggle button:hover {
      background: rgba(255, 255, 255, 0.2);
    }

    .slider-footer p {
      margin: 0;
      color: #fff;
      font-size: 18px;
      margin-bottom: 10px;
    }

    .slider-indicator {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      align-items: center;
    }

    .slider-indicator li {
      width: 8px;
      height: 8px;
      margin: 4px;
      border-radius: 50%;
      background: #fff;
      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/slider01.jpg" alt="" />
    </div>
    <div class="slider-footer">
      <p>对人类来说会不会太超前了?</p>
      <ul class="slider-indicator">
        <li class="active"></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
      <div class="toggle">
        <button class="prev">&lt;</button>
        <button class="next">&gt;</button>
      </div>
    </div>
  </div>
  <script>
    // 1. 初始数据
    const sliderData = [
      { url: './images/slider01.jpg', title: '对人类来说会不会太超前了?', color: 'rgb(100, 67, 68)' },
      { url: './images/slider02.jpg', title: '开启剑与雪的黑暗传说!', color: 'rgb(43, 35, 26)' },
      { url: './images/slider03.jpg', title: '真正的jo厨出现了!', color: 'rgb(36, 31, 33)' },
      { url: './images/slider04.jpg', title: '李玉刚:让世界通过B站看到东方大国文化', color: 'rgb(139, 98, 66)' },
      { url: './images/slider05.jpg', title: '快来分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },
      { url: './images/slider06.jpg', title: '哔哩哔哩小年YEAH', color: 'rgb(166, 131, 143)' },
      { url: './images/slider07.jpg', title: '一站式解决你的电脑配置问题!!!', color: 'rgb(53, 29, 25)' },
      { url: './images/slider08.jpg', title: '谁不想和小猫咪贴贴呢!', color: 'rgb(99, 72, 114)' },
    ]
    //获取元素
    const img = document.querySelector('.slider-wrapper img')
        const p = document.querySelector(".slider-footer p")
        const footer = document.querySelector('.slider-footer')
        const slider = document.querySelector(".slider")
        const lis = document.querySelectorAll('.slider-indicator li')
        const next = document.querySelector('.toggle .next')
        const prev = document.querySelector('.toggle .prev')

//遍历所有的li,给每个li绑定一个点击事件
        for(let i=0;i<lis.length;i++){
            lis[i].addEventListener('click',function() {
              //移出所有的active类
              document.querySelector('.slider-indicator .active').classList.remove('active')
            //谁点击谁添加active类
              this.classList.add('active')
              img.src = sliderData[i].url
            p.innerHTML = sliderData[i].title
            footer.style.backgroundColor = sliderData[i].color
            })
        }

  </script>
</body>

</html>

 3、自动播放加左右箭头点击切换

需求:要自动播放

        点击左右按钮可以跳转

        鼠标移入停止自动播放,鼠标离开继续自动播放

思路:

        需要开启定时器来实现自动播放

        给左右按钮添加点击事件

        给整体添加鼠标移入清除定时器功能

        鼠标移出添加开启定时器功能  

<!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 {
            width: 560px;
            height: 400px;
            overflow: hidden;
        }

        .slider-wrapper {
            width: 100%;
            height: 320px;
        }

        .slider-wrapper img {
            width: 100%;
            height: 100%;
            display: block;
        }

        .slider-footer {
            height: 80px;
            background-color: rgb(100, 67, 68);
            padding: 12px 12px 0 12px;
            position: relative;
        }

        .slider-footer .toggle {
            position: absolute;
            right: 0;
            top: 12px;
            display: flex;
        }

        .slider-footer .toggle button {
            margin-right: 12px;
            width: 28px;
            height: 28px;
            appearance: none;
            border: none;
            background: rgba(255, 255, 255, 0.1);
            color: #fff;
            border-radius: 4px;
            cursor: pointer;
        }

        .slider-footer .toggle button:hover {
            background: rgba(255, 255, 255, 0.2);
        }

        .slider-footer p {
            margin: 0;
            color: #fff;
            font-size: 18px;
            margin-bottom: 10px;
        }

        .slider-indicator {
            margin: 0;
            padding: 0;
            list-style: none;
            display: flex;
            align-items: center;
        }

        .slider-indicator li {
            width: 8px;
            height: 8px;
            margin: 4px;
            border-radius: 50%;
            background: #fff;
            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/slider01.jpg" alt="" />
        </div>
        <div class="slider-footer">
            <p>对人类来说会不会太超前了?</p>
            <ul class="slider-indicator">
                <li class="active"></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <div class="toggle">
                <button class="prev">&lt;</button>
                <button class="next">&gt;</button>
            </div>
        </div>
    </div>
    <script>
        // 1. 初始数据
        const sliderData = [
            { url: './images/slider01.jpg', title: '对人类来说会不会太超前了?', color: 'rgb(100, 67, 68)' },
            { url: './images/slider02.jpg', title: '开启剑与雪的黑暗传说!', color: 'rgb(43, 35, 26)' },
            { url: './images/slider03.jpg', title: '真正的jo厨出现了!', color: 'rgb(36, 31, 33)' },
            { url: './images/slider04.jpg', title: '李玉刚:让世界通过B站看到东方大国文化', color: 'rgb(139, 98, 66)' },
            { url: './images/slider05.jpg', title: '快来分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },
            { url: './images/slider06.jpg', title: '哔哩哔哩小年YEAH', color: 'rgb(166, 131, 143)' },
            { url: './images/slider07.jpg', title: '一站式解决你的电脑配置问题!!!', color: 'rgb(53, 29, 25)' },
            { url: './images/slider08.jpg', title: '谁不想和小猫咪贴贴呢!', color: 'rgb(99, 72, 114)' },
        ]
        const img = document.querySelector('.slider-wrapper img')
        const p = document.querySelector(".slider-footer p")
        const footer = document.querySelector('.slider-footer')
        const slider = document.querySelector(".slider")
        const lis = document.querySelectorAll('.slider-indicator li')
        const next = document.querySelector('.toggle .next')
        const prev = document.querySelector('.toggle .prev')

        let i = 0

        //开启定时器
        let timer = setInterval(function () {

            i++
            if (i === sliderData.length) {
                i = 0
            }
            img.src = sliderData[i].url
            p.innerHTML = sliderData[i].title
            footer.style.backgroundColor = sliderData[i].color

            document.querySelector('.slider-indicator .active').classList.remove('active')

            lis[i].classList.add('active')

        }, 1000)

        next.addEventListener('click', function () {
            i++
            if (i === sliderData.length) {
                i = 0
            }
            img.src = sliderData[i].url
            p.innerHTML = sliderData[i].title
            footer.style.backgroundColor = sliderData[i].color

            document.querySelector('.slider-indicator .active').classList.remove('active')

            lis[i].classList.add('active')


        })
        prev.addEventListener('click',function() {
            i--
            if (i< 0) {
                i = sliderData.length
            }
            img.src = sliderData[i].url
            p.innerHTML = sliderData[i].title
            footer.style.backgroundColor = sliderData[i].color

            document.querySelector('.slider-indicator .active').classList.remove('active')

            lis[i].classList.add('active')

        })

        slider.addEventListener('mouseenter', function () {
            clearInterval(timer)
        })
        slider.addEventListener('mouseleave', function () {
            timer = setInterval(function () {

                i++
                if (i === sliderData.length) {
                    i = 0
                }
                img.src = sliderData[i].url
                p.innerHTML = sliderData[i].title
                footer.style.backgroundColor = sliderData[i].color

                document.querySelector('.slider-indicator .active').classList.remove('active')

                lis[i].classList.add('active')

            }, 1000)

        })


    </script>
</body>

</html>

优化代码:把重复的代码封装成一个为toggle() 的函数,哪里需要,哪里调用,减少代码冗余

<!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 {
        width: 560px;
        height: 400px;
        overflow: hidden;
      }

      .slider-wrapper {
        width: 100%;
        height: 320px;
      }

      .slider-wrapper img {
        width: 100%;
        height: 100%;
        display: block;
      }

      .slider-footer {
        height: 80px;
        background-color: rgb(100, 67, 68);
        padding: 12px 12px 0 12px;
        position: relative;
      }

      .slider-footer .toggle {
        position: absolute;
        right: 0;
        top: 12px;
        display: flex;
      }

      .slider-footer .toggle button {
        margin-right: 12px;
        width: 28px;
        height: 28px;
        appearance: none;
        border: none;
        background: rgba(255, 255, 255, 0.1);
        color: #fff;
        border-radius: 4px;
        cursor: pointer;
      }

      .slider-footer .toggle button:hover {
        background: rgba(255, 255, 255, 0.2);
      }

      .slider-footer p {
        margin: 0;
        color: #fff;
        font-size: 18px;
        margin-bottom: 10px;
      }

      .slider-indicator {
        margin: 0;
        padding: 0;
        list-style: none;
        display: flex;
        align-items: center;
      }

      .slider-indicator li {
        width: 8px;
        height: 8px;
        margin: 4px;
        border-radius: 50%;
        background: #fff;
        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/slider01.jpg" alt="" />
      </div>
      <div class="slider-footer">
        <p>对人类来说会不会太超前了?</p>
        <ul class="slider-indicator">
          <li class="active"></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
        </ul>
        <div class="toggle">
          <button class="prev">&lt;</button>
          <button class="next">&gt;</button>
        </div>
      </div>
    </div>
    <script>
      // 1. 初始数据
      const sliderData = [
        {
          url: './images/slider01.jpg',
          title: '对人类来说会不会太超前了?',
          color: 'rgb(100, 67, 68)',
        },
        {
          url: './images/slider02.jpg',
          title: '开启剑与雪的黑暗传说!',
          color: 'rgb(43, 35, 26)',
        },
        {
          url: './images/slider03.jpg',
          title: '真正的jo厨出现了!',
          color: 'rgb(36, 31, 33)',
        },
        {
          url: './images/slider04.jpg',
          title: '李玉刚:让世界通过B站看到东方大国文化',
          color: 'rgb(139, 98, 66)',
        },
        {
          url: './images/slider05.jpg',
          title: '快来分享你的寒假日常吧~',
          color: 'rgb(67, 90, 92)',
        },
        {
          url: './images/slider06.jpg',
          title: '哔哩哔哩小年YEAH',
          color: 'rgb(166, 131, 143)',
        },
        {
          url: './images/slider07.jpg',
          title: '一站式解决你的电脑配置问题!!!',
          color: 'rgb(53, 29, 25)',
        },
        {
          url: './images/slider08.jpg',
          title: '谁不想和小猫咪贴贴呢!',
          color: 'rgb(99, 72, 114)',
        },
      ]

      // 找到相关元素
      const oImg = document.querySelector('.slider-wrapper > img')
      const title = document.querySelector('.slider-footer > p')
      const sliderFooter = document.querySelector('.slider-footer')
      const lis = document.querySelectorAll('.slider-indicator li')
      const prev = document.querySelector('.prev')
      const next = document.querySelector('.next')
      const slider = document.querySelector('.slider')

      // 定义一个变量
      let i = 0
      // 开启定时器 开启自动播放
      let timerId = setInterval(function() {
        // i++
        // if (i === sliderData.length) {
        //   i = 0
        // }
        // toggle()

        // 方式二 模拟点击右侧按钮
        next.click()
      }
      , 1500)

      // 给右侧按钮绑定事件
      next.addEventListener('click', function () {
        i++
        if (i === sliderData.length) {
          i = 0
        }
        toggle()
      })

      // 给左侧按钮绑定事件
      prev.addEventListener('click', function () {
        i--
        if (i < 0) {
          i = sliderData.length - 1
        }
        toggle()
      })

      // 给slider绑定鼠标移入事件
      slider.addEventListener('mouseenter', function () {
        clearInterval(timerId)
      })
      // 给slider绑定鼠标移出事件
      slider.addEventListener('mouseleave', function () {
        timerId = setInterval(function () {
         next.click()
        }, 1500)
      })

      // 切换
      function toggle() {
        // 设置图片
        oImg.src = sliderData[i].url
        // 设置标题
        title.innerHTML = sliderData[i].title
        // 设置底部区域背景色
        sliderFooter.style.backgroundColor = sliderData[i].color
        // 设置小圆圈样式
        // 把其他某个li的active移除 再给对应的li设置
        document
          .querySelector('.slider-indicator .active').classList.remove('active')
        // lis[i].classList.add('active') 方式二
        document.querySelector(`.slider-indicator li:nth-child(${i + 1})`).classList.add('active')
      }
    </script>
  </body>
</html>

4、完整版轮播图

结合以上所有功能,是一个综合

<!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 {
            width: 560px;
            height: 400px;
            overflow: hidden;
        }

        .slider-wrapper {
            width: 100%;
            height: 320px;
        }

        .slider-wrapper img {
            width: 100%;
            height: 100%;
            display: block;
        }

        .slider-footer {
            height: 80px;
            background-color: rgb(100, 67, 68);
            padding: 12px 12px 0 12px;
            position: relative;
        }

        .slider-footer .toggle {
            position: absolute;
            right: 0;
            top: 12px;
            display: flex;
        }

        .slider-footer .toggle button {
            margin-right: 12px;
            width: 28px;
            height: 28px;
            appearance: none;
            border: none;
            background: rgba(255, 255, 255, 0.1);
            color: #fff;
            border-radius: 4px;
            cursor: pointer;
        }

        .slider-footer .toggle button:hover {
            background: rgba(255, 255, 255, 0.2);
        }

        .slider-footer p {
            margin: 0;
            color: #fff;
            font-size: 18px;
            margin-bottom: 10px;
        }

        .slider-indicator {
            margin: 0;
            padding: 0;
            list-style: none;
            display: flex;
            align-items: center;
        }

        .slider-indicator li {
            width: 8px;
            height: 8px;
            margin: 4px;
            border-radius: 50%;
            background: #fff;
            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/slider01.jpg" alt="" />
        </div>
        <div class="slider-footer">
            <p>对人类来说会不会太超前了?</p>
            <ul class="slider-indicator">
                <li class="active"></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <div class="toggle">
                <button class="prev">&lt;</button>
                <button class="next">&gt;</button>
            </div>
        </div>
    </div>
    <script>
        // 1. 初始数据
        const sliderData = [
            { url: './images/slider01.jpg', title: '对人类来说会不会太超前了?', color: 'rgb(100, 67, 68)' },
            { url: './images/slider02.jpg', title: '开启剑与雪的黑暗传说!', color: 'rgb(43, 35, 26)' },
            { url: './images/slider03.jpg', title: '真正的jo厨出现了!', color: 'rgb(36, 31, 33)' },
            { url: './images/slider04.jpg', title: '李玉刚:让世界通过B站看到东方大国文化', color: 'rgb(139, 98, 66)' },
            { url: './images/slider05.jpg', title: '快来分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },
            { url: './images/slider06.jpg', title: '哔哩哔哩小年YEAH', color: 'rgb(166, 131, 143)' },
            { url: './images/slider07.jpg', title: '一站式解决你的电脑配置问题!!!', color: 'rgb(53, 29, 25)' },
            { url: './images/slider08.jpg', title: '谁不想和小猫咪贴贴呢!', color: 'rgb(99, 72, 114)' },
        ]
        const img = document.querySelector('.slider-wrapper img')
        const p = document.querySelector(".slider-footer p")
        const footer = document.querySelector('.slider-footer')
        const slider = document.querySelector(".slider")
        const lis = document.querySelectorAll('.slider-indicator li')
        const next = document.querySelector('.toggle .next')
        const prev = document.querySelector('.toggle .prev')

        let i = 0


        //开启定时器
        let timer = setInterval(function () {


            next.click()

        }, 1000)

        //右侧点击
        next.addEventListener('click', function () {
            i++
            if (i === sliderData.length) {
                i = 0
            }

            toggle()


        })
        //左侧点击
        prev.addEventListener('click', function () {
            i--
            if (i < 0) {
                i = sliderData.length
            }


            toggle()


        })

        //鼠标移入清除定时器
        slider.addEventListener('mouseenter', function () {
            clearInterval(timer)
        })
        //鼠标移出,开启定时器
        slider.addEventListener('mouseleave', function () {
            timer = setInterval(function () {

                next.click()

            }, 1000)

        })
        //给每个li(小圆点)设置点击事件
        for (let j = 0; j < lis.length; j++) {
            lis[j].addEventListener('click', function () {
                document.querySelector('.slider-indicator .active').classList.remove('active')
                this.classList.add('active')
                img.src = sliderData[j].url
                p.innerHTML = sliderData[j].title
                footer.style.backgroundColor = sliderData[j].color
                i = j
            })
        }
        //相同代码封装成一个函数,方便复用
        function toggle() {
            img.src = sliderData[i].url
            p.innerHTML = sliderData[i].title
            footer.style.backgroundColor = sliderData[i].color

            document.querySelector('.slider-indicator .active').classList.remove('active')

            lis[i].classList.add('active')

        }


    </script>
</body>

</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1210266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一例plugx样本的分析(AcroRd32cWP)

这是一例plugx的样本&#xff0c;使用了一个合法签名的程序 &#xff0c;使用侧加载的方式加载一个恶意的dll&#xff0c;解密一个dat文件来&#xff0c;在内存中执行一个反射型dll来完成恶意功能。 这个病毒会使用摆渡的方式的来窃取内网的文档数据&#xff0c;具有严重的失泄…

Git新建分支

修改代码之Git策略思考&#xff1a; 有三种办法&#xff1a; 需要在主分支上新建一个分支&#xff0c;不合并新建版本。其实也是先新建一个分支&#xff0c;然后合并到主分支&#xff0c;再删除分支。直接新建远程仓库。 考虑&#xff0c;3&#xff09;最浪费&#xff0c;其…

QGIS之十七按范围选择要素

效果 步骤 1、准备数据 &#xff08;1&#xff09;、范围面 &#xff08;2&#xff09;、point 2、Qgis中裁剪 工具箱中搜索“裁剪” 注意编码问题 3、裁剪结果

Skybox天空盒子的更换教程_unity基础开发教程

Skybox天空盒子的更换 Skybox的下载与导入更换SkyboxSkybox属性自定义 Skybox的下载与导入 打开资源商店 搜索FREE Skybox 这里是我使用的是这一款资源&#xff0c;点击添加至我的资源 打开包管理器Package Manager Packages选择My Assets 搜索Sky 选择刚刚添加的天空盒子 点…

​TechSmith Camtasia 2024破解版功能介绍及使用教程

在现在的网络互联网时代&#xff0c;越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频&#xff0c;也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音&#xff0c;做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…

滚雪球学Java(63):Java高级集合之TreeSet:什么是它,为什么使用它?

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

【物联网】BDS/GNSS 全星座定位导航模块——ATGM332D-5N

随着科技的不断进步&#xff0c;导航系统已经成为我们日常生活中不可或缺的一部分。传统的导航系统往往只提供基本的地图和路线规划&#xff0c;对于一些特殊需求或个性化定位并不够满足。全星座定位导航模块的出现&#xff0c;为我们带来了全新的导航体验。通过结合星座学说和…

上海亚商投顾:沪指震荡反弹 鸿蒙、算力概念股集体爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日窄幅震荡&#xff0c;创业板指冲高回落&#xff0c;市场热点继续轮动。华为鸿蒙概念股继续活跃&#…

Leetcode刷题详解—— 图像渲染

1. 题目链接&#xff1a;733. 图像渲染 2. 题目描述&#xff1a; 有一幅以 m x n 的二维整数数组表示的图画 image &#xff0c;其中 image[i][j] 表示该图画的像素值大小。 你也被给予三个整数 sr , sc 和 newColor 。你应该从像素 image[sr][sc] 开始对图像进行 上色填充 。…

计算机组成原理——指令系统题库1-20

1、以下有关指令系统的说法中错误的是什么。 A、 指令系统是一台机器硬件能执行的指令全体 B、 任何程序运行前都要先转化为机器语言 C、 指令系统是计算机软件、硬件的界面 D、 指令系统和机器语言是无关的。 2、在CPU执行指令的过程中&#xff0c;指令的地址由什么给出。…

计算机缺失vcruntime140.dll如何修复?超简单的5个解决方法

在我们日常使用电脑的过程中&#xff0c;可能会遇到各种各样的问题和错误提示。其中&#xff0c;一个比较常见的错误提示就是“vcruntime140.dll丢失”。这个错误通常发生在我们尝试运行某个程序或应用时&#xff0c;系统无法找到或加载所需的vcruntime140.dll文件。 vcruntime…

又卷又累,救救一个将被随机拖死的程序员!

前两天在小红书上看到有人吐槽&#xff1a;“国内做程序员性价比不高&#xff0c;又卷又累&#xff0c;个人时间都被拖死了。” 现在普遍来讲&#xff0c;“卷”都是打工人的现状。 而至于国内程序员性价比不高的话&#xff0c;确实是肉少僧多。工作强度一加持&#xff0c;累自…

3D Gaussian Splatting文件的压缩【3D高斯泼溅】

在上一篇文章中&#xff0c;我开始研究高斯泼溅&#xff08;3DGS&#xff1a;3D Gaussian Splatting&#xff09;。 它的问题之一是数据集并不小。 渲染图看起来不错。 但“自行车”、“卡车”、“花园”数据集分别是一个 1.42GB、0.59GB、1.35GB 的 PLY 文件。 它们几乎按原样…

c++之xml的创建,增删改查

c之xml的创建&#xff0c;增删改查 1.创建写入2.添加3.删除4.修改&#xff1a; 1.创建写入 #include <stdio.h> #include <typeinfo> #include "F:/EDGE/tinyxml/tinyxml.h" #include <iostream> #include <string> #include <Winsock2.…

Pytorch多GPU并行训练: DistributedDataParallel

1 模型并行化训练 1.1 为什么要并行训练 在训练大型数据集或者很大的模型时一块GPU很难放下&#xff0c;例如最初的AlexNet就是在两块GPU上计算的。并行计算一般采取两个策略&#xff1a;一个是模型并行&#xff0c;一个是数据并行。左图中是将模型的不同部分放在不同GPU上进…

2023年最新前端面试题汇总大全(含答案超详细,HTML,JS,CSS汇总篇)-- 持续更新

专项练习–持续更新 HTML篇CSS篇JS篇Vue篇TypeScript篇React篇微信小程序篇前端面试题汇总大全二&#xff08;含答案超详细&#xff0c;Vue&#xff0c;TypeScript&#xff0c;React&#xff0c;微信小程序&#xff0c;Webpack 汇总篇&#xff09;-- 持续更新 前端面试题汇总大…

微信昵称后面的“小耳朵”是干什么用的?

微信&#xff0c;一款我们日常使用频繁的社交软件&#xff0c;它的功能远不止于聊天、刷朋友圈、支付和刷视频。其实&#xff0c;微信的许多不常用功能可以解决我们的实际问题。 聊天时&#xff0c;我发现朋友微信昵称后面多了一个神秘的小耳朵图标&#xff0c;引发了我的好奇心…

PHP使用文件缓存实现html静态化

<?php // 动态生成的内容 $content "<html><body><h1>time:".date("Y-m-d H:i:s")."</h1></body></html>"; // 静态文件保存路径和文件名 $staticFilePath "file.html"; if(file_exists($s…

工具及方法 - 手机扫条码工具: SCANDIT APP

一般扫个链接使用微信扫一扫即可。扫具体条码&#xff0c;可以在微信里搜索小程序&#xff0c;打开也能扫&#xff0c;得到条码内容。 还有其他方式&#xff0c;比如使用淘宝、百度等APP也可以直接扫码条码&#xff0c;还能得到更多的信息。 使用百度的话&#xff0c;不扫条码…

Android实验:Activity界面基础

目录 前言实验目的实验内容实验要求代码实现mainActivityResultActivityactivity_mainactivity_result 结果展示 前言 我们都知道&#xff0c;activity是Android中最重要的组件之一&#xff0c;关于activity的具体内容在这里就不多赘述&#xff0c;主打的就是一个主次分明&…