…">
当前位置:首页 > JavaScript

简单js实现轮播

2026-03-01 08:34:44JavaScript

基础HTML结构

创建一个包含图片的容器,并添加必要的CSS样式隐藏溢出部分。

<div class="slider">
  <div class="slides">
    <img src="image1.jpg" class="slide">
    <img src="image2.jpg" class="slide">
    <img src="image3.jpg" class="slide">
  </div>
</div>
.slider {
  width: 500px;
  height: 300px;
  overflow: hidden;
  position: relative;
}
.slides {
  display: flex;
  transition: transform 0.5s ease;
}
.slide {
  min-width: 100%;
}

核心JavaScript逻辑

通过修改transform属性实现横向滑动效果,使用定时器控制自动轮播。

简单js实现轮播

let currentSlide = 0;
const slides = document.querySelectorAll('.slide');
const totalSlides = slides.length;

function nextSlide() {
  currentSlide = (currentSlide + 1) % totalSlides;
  document.querySelector('.slides').style.transform = 
    `translateX(-${currentSlide * 100}%)`;
}

// 自动轮播
setInterval(nextSlide, 3000);

添加导航按钮

扩展功能包含前进/后退按钮和指示器圆点。

简单js实现轮播

document.querySelector('.prev').addEventListener('click', () => {
  currentSlide = (currentSlide - 1 + totalSlides) % totalSlides;
  updateSlider();
});

document.querySelector('.next').addEventListener('click', () => {
  currentSlide = (currentSlide + 1) % totalSlides;
  updateSlider();
});

function updateSlider() {
  document.querySelector('.slides').style.transform = 
    `translateX(-${currentSlide * 100}%)`;

  // 更新指示器状态
  document.querySelectorAll('.dot').forEach((dot, index) => {
    dot.classList.toggle('active', index === currentSlide);
  });
}

响应式处理

添加窗口大小变化时的自适应调整。

window.addEventListener('resize', () => {
  document.querySelector('.slides').style.transform = 
    `translateX(-${currentSlide * 100}%)`;
});

完整示例整合

将所有功能整合为可复用的类形式。

class SimpleSlider {
  constructor(selector) {
    this.slider = document.querySelector(selector);
    this.slides = this.slider.querySelectorAll('.slide');
    this.currentIndex = 0;
    this.init();
  }

  init() {
    setInterval(() => this.next(), 3000);
  }

  next() {
    this.currentIndex = (this.currentIndex + 1) % this.slides.length;
    this.update();
  }

  update() {
    this.slider.querySelector('.slides').style.transform = 
      `translateX(-${this.currentIndex * 100}%)`;
  }
}

new SimpleSlider('.slider');

标签: 简单js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

vue增删改查简单实现

vue增删改查简单实现

Vue 增删改查简单实现 以下是一个基于 Vue 3 的简单增删改查(CRUD)实现示例,使用 Vue 的 Composition API 和响应式数据管理。 初始化项目 确保已安装 Vue…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEv…