<…">
当前位置:首页 > 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";
});

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

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

相关文章

vue图片实现多选

vue图片实现多选

Vue 图片多选实现方法 在 Vue 中实现图片多选功能可以通过以下几种方式完成,具体取决于项目需求和复杂度。 使用 v-model 和数组存储选中状态 通过 v-model 绑定一个数组来记录选中…

vue 实现图片切换

vue 实现图片切换

实现图片切换的基本思路 在Vue中实现图片切换通常涉及数据绑定、事件处理和动态样式。核心是通过维护一个当前图片索引的状态,利用Vue的响应式特性更新显示的图片。 数据准备与绑定 定义一个数组存储图片…

js实现图片的懒加载

js实现图片的懒加载

实现图片懒加载的基本原理 懒加载的核心思想是延迟加载非视口内的图片,当用户滚动页面时再动态加载即将进入视口的图片资源。这能显著减少页面初始加载时的网络请求和带宽消耗。 Intersection Ob…

vue 实现 图片预览

vue 实现 图片预览

实现图片预览功能 在Vue中实现图片预览功能可以通过多种方式完成,以下是几种常见的方法: 使用HTML5的FileReader API 通过FileReader读取用户上传的图片文件并显示预览:…

vue实现html图片

vue实现html图片

在 Vue 中实现 HTML 图片渲染 在 Vue 中渲染 HTML 图片可以通过多种方式实现,以下是几种常见的方法: 使用 v-html 指令渲染包含图片标签的 HTML 字符串 <tem…

vue 实现图片截取

vue 实现图片截取

使用 Vue 实现图片截取 在 Vue 中实现图片截取功能通常需要借助第三方库或原生 Canvas API。以下是两种常见的方法: 使用 cropperjs 库 安装 cropperjs 库: n…