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

js 实现图片轮播

2026-02-28 22:15:47JavaScript

实现基础图片轮播

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

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

CSS 样式设置定位和过渡效果:

.slider {
  position: relative;
  width: 500px;
  height: 300px;
  overflow: hidden;
}
.slides {
  display: flex;
  transition: transform 0.5s ease;
}
.slide {
  min-width: 100%;
  height: 100%;
  object-fit: cover;
}
.prev, .next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
}
.prev { left: 10px; }
.next { right: 10px; }

JavaScript 核心逻辑

获取DOM元素并初始化变量:

const slides = document.querySelectorAll('.slide');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');
let currentSlide = 0;
const totalSlides = slides.length;

实现滑动函数和按钮事件:

function goToSlide(slideIndex) {
  slides.forEach((slide, idx) => {
    slide.style.transform = `translateX(${100 * (idx - slideIndex)}%)`;
  });
  currentSlide = slideIndex;
}

prevBtn.addEventListener('click', () => {
  currentSlide = (currentSlide - 1 + totalSlides) % totalSlides;
  goToSlide(currentSlide);
});

nextBtn.addEventListener('click', () => {
  currentSlide = (currentSlide + 1) % totalSlides;
  goToSlide(currentSlide);
});

自动轮播功能

添加定时器实现自动播放:

let autoPlayInterval;

function startAutoPlay(interval = 3000) {
  autoPlayInterval = setInterval(() => {
    currentSlide = (currentSlide + 1) % totalSlides;
    goToSlide(currentSlide);
  }, interval);
}

function stopAutoPlay() {
  clearInterval(autoPlayInterval);
}

// 鼠标悬停暂停
document.querySelector('.slider').addEventListener('mouseenter', stopAutoPlay);
document.querySelector('.slider').addEventListener('mouseleave', () => startAutoPlay());

// 初始化
goToSlide(0);
startAutoPlay();

指示器实现

添加导航圆点指示器:

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

CSS样式:

.dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
}
.dot {
  width: 12px;
  height: 12px;
  margin: 0 5px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  cursor: pointer;
}
.dot.active {
  background: white;
}

JavaScript交互:

js 实现图片轮播

const dots = document.querySelectorAll('.dot');

function updateDots() {
  dots.forEach(dot => dot.classList.remove('active'));
  dots[currentSlide].classList.add('active');
}

dots.forEach(dot => {
  dot.addEventListener('click', () => {
    currentSlide = parseInt(dot.dataset.slide);
    goToSlide(currentSlide);
    updateDots();
  });
});

// 在goToSlide函数末尾调用
updateDots();

标签: 图片js
分享给朋友:

相关文章

css3手工制作图片

css3手工制作图片

使用CSS3手工制作图片 CSS3可以通过各种属性如box-shadow、border-radius、gradient等来手工绘制简单的图形或图片效果。以下是几种常见的方法: 绘制圆形 通过bord…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

h5实现全景图片

h5实现全景图片

H5 实现全景图片的方法 使用 Three.js 库 Three.js 是一个强大的 3D 库,可以用于创建全景图片效果。以下是一个简单的实现步骤: 引入 Three.js 库 <scri…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

jquery图片

jquery图片

jQuery 图片操作 jQuery 提供了多种方法来处理图片,包括加载、显示、隐藏、动画效果等。以下是一些常见的 jQuery 图片操作方法: 动态加载图片 使用 jQuery 的 attr()…