完善按钮点击事件和鼠标移动事件。

html和css放在上一节:

JS代码

// 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 footer = document.querySelector('.slider-footer')
    //获取标题
    const p = document.querySelector('.slider-footer p')
    //获取下一个按钮
    const next = document.querySelector('.next')
    //获取上一个按钮
    const prev = document.querySelector('.prev')
    //获取整个轮播图盒子
    const slider = document.querySelector(".slider")
  
    //设置一个定时器
    let timer = setInterval(function(){
      //利用间歇函数执行模拟点击事件
      next.click()
    },3000)
  
    let i = 0
    //下一个点击事件
    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()
    })

    //更换轮播图内容
    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')
      document.querySelector(`.slider-indicator li:nth-child(${i + 1})`).classList.add('active')
  
    }
    //鼠标移到整个轮播图盒子清除定时器
    slider.addEventListener('mouseenter',function(){
      clearInterval(timer)
    })
    //鼠标移出整个轮播图盒子开启定时器
    slider.addEventListener('mouseleave',function(){
      clearInterval(timer)
      timer = setInterval(function(){
      next.click()
    },3000)
    })

效果

动画4.gif

最后修改:2022 年 08 月 30 日
如果觉得我的文章对你有用,请随意赞赏