当前位置:首页 > JavaScript

js实现图片轮播教程

2026-01-31 04:47:22JavaScript

实现基础图片轮播

HTML结构需包含轮播容器、图片列表及导航按钮:

<div class="slider">
  <div class="slides">
    <img src="image1.jpg" class="active">
    <img src="image2.jpg">
    <img src="image3.jpg">
  </div>
  <button class="prev">❮</button>
  <button class="next">❯</button>
</div>

CSS设置基础样式与过渡效果:

.slider {
  position: relative;
  width: 80%;
  margin: auto;
  overflow: hidden;
}
.slides img {
  width: 100%;
  display: none;
}
.slides img.active {
  display: block;
  animation: fade 1.5s;
}
@keyframes fade {
  from {opacity: 0.4}
  to {opacity: 1}
}

核心JavaScript逻辑

初始化变量与自动轮播功能:

js实现图片轮播教程

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

function showSlide(index) {
  slides.forEach(slide => slide.classList.remove('active'));
  currentSlide = (index + totalSlides) % totalSlides;
  slides[currentSlide].classList.add('active');
}

function autoPlay() {
  showSlide(currentSlide + 1);
  setTimeout(autoPlay, 3000);
}
autoPlay();

添加按钮事件监听:

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

document.querySelector('.prev').addEventListener('click', () => {
  showSlide(currentSlide - 1);
});

增强功能实现

添加指示器导航:

js实现图片轮播教程

<div class="dots">
  <span class="dot active" data-index="0"></span>
  <span class="dot" data-index="1"></span>
  <span class="dot" data-index="2"></span>
</div>

对应JavaScript交互:

document.querySelectorAll('.dot').forEach(dot => {
  dot.addEventListener('click', (e) => {
    showSlide(parseInt(e.target.dataset.index));
  });
});

function updateDots() {
  document.querySelectorAll('.dot').forEach((dot, i) => {
    dot.classList.toggle('active', i === currentSlide);
  });
}

响应式处理

监听窗口大小变化调整轮播尺寸:

function resizeSlider() {
  const slider = document.querySelector('.slider');
  slider.style.height = `${slider.offsetWidth * 0.6}px`;
}
window.addEventListener('resize', resizeSlider);
resizeSlider();

触摸屏支持

添加触摸事件处理:

let touchStartX = 0;
const slider = document.querySelector('.slider');

slider.addEventListener('touchstart', (e) => {
  touchStartX = e.touches[0].clientX;
});

slider.addEventListener('touchend', (e) => {
  const touchEndX = e.changedTouches[0].clientX;
  if (touchEndX - touchStartX > 50) showSlide(currentSlide - 1);
  if (touchStartX - touchEndX > 50) showSlide(currentSlide + 1);
});

标签: 教程图片
分享给朋友:

相关文章

网页制作css教程

网页制作css教程

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成: 选择器 { 属性: 值; } 示例: p { color: blue;…

vue实现图片闪烁

vue实现图片闪烁

实现图片闪烁效果的方法 在Vue中实现图片闪烁效果可以通过CSS动画或JavaScript动态控制样式。以下是几种常见方法: CSS动画实现 通过@keyframes定义闪烁动画,并应用到图片元素上…

js实现图片拖拽

js实现图片拖拽

实现图片拖拽的基本步骤 HTML 结构需要包含可拖拽的图片元素,并设置 draggable 属性为 true: <img id="dragImage" src="image.jpg" drag…

vue实现图片复制

vue实现图片复制

Vue 实现图片复制功能 在 Vue 中实现图片复制功能通常涉及两种方式:通过剪贴板 API 或借助第三方库。以下是具体实现方法: 使用 Clipboard API(现代浏览器支持) 通过 navi…

vue实现图片自动

vue实现图片自动

Vue 实现图片自动轮播 使用 Vue 实现图片自动轮播可以通过以下方法完成,结合 v-for 和定时器实现动态切换。 依赖安装 确保项目已安装 Vue,若未安装可通过以下命令安装: np…

vue实现图片热点

vue实现图片热点

Vue 实现图片热点的方法 在 Vue 中实现图片热点功能,可以通过监听图片的点击事件,获取点击位置的坐标,并根据坐标判断是否触发热点区域。以下是几种常见的实现方式: 使用 HTML 的 <m…