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

js实现四张图片轮播

2026-03-01 11:38:11JavaScript

实现四张图片轮播的JavaScript方法

HTML结构

创建一个包含四张图片的轮播容器,并添加导航按钮:

<div class="carousel-container">
  <div class="carousel-slide">
    <img src="image1.jpg" alt="Image 1">
    <img src="image2.jpg" alt="Image 2">
    <img src="image3.jpg" alt="Image 3">
    <img src="image4.jpg" alt="Image 4">
  </div>
  <button class="prev-btn">❮</button>
  <button class="next-btn">❯</button>
</div>

CSS样式

设置轮播容器和图片的样式:

.carousel-container {
  position: relative;
  width: 600px;
  height: 400px;
  margin: auto;
  overflow: hidden;
}

.carousel-slide {
  display: flex;
  width: 2400px; /* 4张图片 * 600px */
  transition: transform 0.5s ease-in-out;
}

.carousel-slide img {
  width: 600px;
  height: 400px;
}

.prev-btn, .next-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.5);
  color: white;
  border: none;
  padding: 10px;
  cursor: pointer;
  z-index: 10;
}

.prev-btn {
  left: 10px;
}

.next-btn {
  right: 10px;
}

JavaScript逻辑

实现图片轮播的核心功能:

const carouselSlide = document.querySelector('.carousel-slide');
const carouselImages = document.querySelectorAll('.carousel-slide img');
const prevBtn = document.querySelector('.prev-btn');
const nextBtn = document.querySelector('.next-btn');

let counter = 0;
const size = carouselImages[0].clientWidth;

// 初始化位置
carouselSlide.style.transform = `translateX(${-size * counter}px)`;

// 下一张按钮事件
nextBtn.addEventListener('click', () => {
  if (counter >= carouselImages.length - 1) return;
  counter++;
  carouselSlide.style.transform = `translateX(${-size * counter}px)`;
});

// 上一张按钮事件
prevBtn.addEventListener('click', () => {
  if (counter <= 0) return;
  counter--;
  carouselSlide.style.transform = `translateX(${-size * counter}px)`;
});

自动轮播功能

添加自动轮播功能:

let autoSlide = setInterval(() => {
  counter++;
  if (counter >= carouselImages.length) {
    counter = 0;
  }
  carouselSlide.style.transform = `translateX(${-size * counter}px)`;
}, 3000);

// 鼠标悬停时暂停自动轮播
carouselContainer.addEventListener('mouseenter', () => {
  clearInterval(autoSlide);
});

// 鼠标离开时恢复自动轮播
carouselContainer.addEventListener('mouseleave', () => {
  autoSlide = setInterval(() => {
    counter++;
    if (counter >= carouselImages.length) {
      counter = 0;
    }
    carouselSlide.style.transform = `translateX(${-size * counter}px)`;
  }, 3000);
});

无限循环改进

实现无限循环效果:

js实现四张图片轮播

nextBtn.addEventListener('click', () => {
  if (counter >= carouselImages.length - 1) {
    counter = -1;
  }
  counter++;
  carouselSlide.style.transform = `translateX(${-size * counter}px)`;
  carouselSlide.style.transition = "transform 0.5s ease-in-out";
});

prevBtn.addEventListener('click', () => {
  if (counter <= 0) {
    counter = carouselImages.length;
  }
  counter--;
  carouselSlide.style.transform = `translateX(${-size * counter}px)`;
  carouselSlide.style.transition = "transform 0.5s ease-in-out";
});

这个实现包含了基本轮播功能、自动播放和无限循环效果。可以根据需要调整过渡时间、图片大小和其他样式参数。

标签: 四张图片
分享给朋友:

相关文章

css3手工制作图片

css3手工制作图片

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

Vue实现图片 放大

Vue实现图片 放大

Vue实现图片放大功能 使用v-viewer插件 安装v-viewer插件: npm install v-viewer 在main.js中引入并配置: import Viewer from 'v-…

js 实现图片轮播

js 实现图片轮播

基础实现方案 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS负责样式布局,JavaScript处理轮播逻辑。 <div class="…

jquery图片切换

jquery图片切换

jQuery图片切换的实现方法 通过jQuery实现图片切换功能有多种方式,以下是几种常见的实现方法: 基础淡入淡出效果 $(document).ready(function(){ let…

vue实现生成图片

vue实现生成图片

Vue 实现生成图片的方法 使用 html2canvas 库 html2canvas 是一个流行的库,可以将 DOM 元素转换为 Canvas,进而生成图片。适用于 Vue 项目。 安装 html2…

vue实现图片复制

vue实现图片复制

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