当前位置:首页 > JavaScript

js 轮播实现

2026-02-01 01:03:22JavaScript

使用纯 JavaScript 实现轮播

通过操作 DOM 元素和 CSS 类名实现基础轮播效果。核心思路是通过定时切换显示不同图片,并添加过渡动画。

// 获取轮播元素
const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slide');
let currentSlide = 0;

// 初始化轮播
function initSlider() {
  slides[0].classList.add('active');
  setInterval(nextSlide, 3000);
}

// 切换下一张
function nextSlide() {
  slides[currentSlide].classList.remove('active');
  currentSlide = (currentSlide + 1) % slides.length;
  slides[currentSlide].classList.add('active');
}

// 启动轮播
initSlider();

添加过渡动画效果

通过 CSS 实现平滑的过渡效果,需配合 JavaScript 的类名切换。

js 轮播实现

.slide {
  position: absolute;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slide.active {
  opacity: 1;
}

实现导航按钮

添加前后导航按钮增强用户交互体验。

const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');

prevBtn.addEventListener('click', () => {
  slides[currentSlide].classList.remove('active');
  currentSlide = (currentSlide - 1 + slides.length) % slides.length;
  slides[currentSlide].classList.add('active');
});

nextBtn.addEventListener('click', nextSlide);

响应式轮播实现

通过监听窗口大小变化调整轮播布局。

js 轮播实现

window.addEventListener('resize', () => {
  slides.forEach(slide => {
    slide.style.width = `${slider.offsetWidth}px`;
  });
});

使用 requestAnimationFrame 优化性能

替代 setInterval 实现更流畅的动画效果。

function animateSlider() {
  requestAnimationFrame(animateSlider);
  // 动画逻辑
}

animateSlider();

触摸事件支持

添加移动端触摸支持,实现手势滑动切换。

let touchStartX = 0;
let touchEndX = 0;

slider.addEventListener('touchstart', (e) => {
  touchStartX = e.changedTouches[0].screenX;
}, false);

slider.addEventListener('touchend', (e) => {
  touchEndX = e.changedTouches[0].screenX;
  handleSwipe();
}, false);

function handleSwipe() {
  if (touchEndX < touchStartX) nextSlide();
  if (touchEndX > touchStartX) prevSlide();
}

标签: js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…