js定时轮播图切换逻辑

练习代码,有误差

        每隔1秒切换一次图片

 

<!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="./css/indrt.css" />
</head>
<body>
  <!-- 创建一个图片轮播器的容器 -->
  <div class="slider">
    <!-- 包含图片和指示器的轮播器内容 -->
    <div class="slider-wrapper">
      <img src="./image/1.jpg" alt="" /> <!-- 初始显示的图片 -->
    </div>
    <div class="slider-footer">
      <!-- 图片标题和指示器 -->
      <div>
        <p>牛啊牛啊</p> <!-- 图片的标题 -->
        <ul class="slider-indicator">
          <!-- 指示器:用于指示当前显示的图片 -->
          <li class="active"></li> <!-- 当前显示图片的指示器 -->
          <li></li>
          <li></li>
          <li></li>
          <li></li>
        </ul>
      </div>
      <!-- 左右切换按钮 -->
      <div class="toggle">
        <button class="prev">&lt;</button> <!-- 向前切换按钮 -->
        <button class="next">&gt;</button> <!-- 向后切换按钮 -->
      </div>
    </div>
  </div>
  <!-- / -->
  <!--  -->
  <!--  -->
  <!--  -->
  <!-- 使用 JavaScript 进行图片轮播的实现 -->
  <script>
    // 1.定义图片数据,包含图片的路径、标题和背景颜色
    const img = [
      {
        url: './image/1.jpg',
        title: '长风破浪会有时',
        color: '#15384f',
      },
      {
        url: './image/2.jpg',
        title: '直挂云帆济沧海',
        color: '#e6bd87',
      },
      {
        url: './image/3.jpg',
        title: '最是人间留不住',
        color: '#5866c5',
      },
      {
        url: './image/4.jpg',
        title: '朱颜辞镜花辞树',
        color: '#07190f',
      },
      {
        url: './image/5.jpg',
        title: '牛啊牛啊',
        color: '#2b5565',
      },
    ]
    // 2.获取操作元素的位置
    let imgs = document.querySelector('.slider-wrapper img') // 图片元素
    let lis = document.querySelectorAll('.slider-indicator li') // 所有指示器元素
    let bgC = document.querySelector('.slider-footer') // 底部轮播器的背景元素
    let p = document.querySelector('.slider-footer p') // 显示图片标题的段落元素
    // 3.计数器
    let i = 0 // 图片索引计数器
    setInterval(function () {
      i++ // 自增图片索引
      if (i >= img.length) {
        i = 0 // 如果图片索引超出范围,重置为0,形成循环播放效果
      }
      // 4.渲染:根据当前索引i显示对应的图片、指示器状态、标题和底部轮播器的背景颜色
      imgs.src = img[i].url // 设置图片元素的src属性,显示对应的图片
      for (let j = 0; j < lis.length; j++) {
        lis[j].classList.remove('active') // 移除所有指示器的"active"类名,使其不显示为当前激活状态
      }
      lis[i].classList.add('active') // 添加当前激活图片对应的指示器的"active"类名,使其显示为激活状态
      bgC.style.backgroundColor = img[i].color // 设置底部轮播器的背景颜色为当前激活图片的背景颜色
      p.innerHTML = img[i].title // 更新底部轮播器中显示的图片标题
    }, 1000) // 每隔1秒切换一次图片
  </script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值