当前位置:首页 > 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 的类名切换。

.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);

响应式轮播实现

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

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

使用 requestAnimationFrame 优化性能

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

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

animateSlider();

触摸事件支持

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

js 轮播实现

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实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现复制功能

js实现复制功能

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

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js类实现

js类实现

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

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…