当前位置:首页 > JavaScript

js实现图片循环滚动

2026-04-03 21:05:14JavaScript

实现图片循环滚动的 JavaScript 方法

方法一:使用 CSS 动画结合 JavaScript 控制

通过 CSS animation 属性实现滚动效果,JavaScript 用于动态调整内容或监听事件。

<div class="scroll-container">
  <div class="scroll-content">
    <img src="image1.jpg" alt="Image 1">
    <img src="image2.jpg" alt="Image 2">
    <img src="image3.jpg" alt="Image 3">
    <!-- 复制一份图片以实现无缝循环 -->
    <img src="image1.jpg" alt="Image 1">
    <img src="image2.jpg" alt="Image 2">
    <img src="image3.jpg" alt="Image 3">
  </div>
</div>
.scroll-container {
  width: 100%;
  overflow: hidden;
}
.scroll-content {
  display: flex;
  animation: scroll 10s linear infinite;
}
@keyframes scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
const scrollContent = document.querySelector('.scroll-content');
// 动态调整内容宽度
scrollContent.style.width = `${scrollContent.children.length * 100}px`;

方法二:纯 JavaScript 实现动态滚动

通过 requestAnimationFramesetInterval 动态修改元素的 transformleft 属性。

const container = document.querySelector('.scroll-container');
const content = document.querySelector('.scroll-content');
let position = 0;

function scrollImages() {
  position -= 1;
  if (position <= -content.offsetWidth / 2) {
    position = 0;
  }
  content.style.transform = `translateX(${position}px)`;
  requestAnimationFrame(scrollImages);
}
scrollImages();

方法三:使用第三方库(如 Swiper.js)

Swiper.js 提供了开箱即用的轮播功能,支持循环滚动。

js实现图片循环滚动

<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css">
<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide"><img src="image1.jpg"></div>
    <div class="swiper-slide"><img src="image2.jpg"></div>
    <div class="swiper-slide"><img src="image3.jpg"></div>
  </div>
</div>
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
const swiper = new Swiper('.swiper', {
  loop: true,
  autoplay: {
    delay: 1000,
  },
});

注意事项

  • 无缝循环:需要在滚动内容末尾复制一份图片,确保过渡平滑。
  • 性能优化:使用 transform 而非 left 属性,避免触发重排。
  • 响应式设计:监听窗口大小变化,动态调整滚动速度或内容宽度。

扩展功能

  • 悬停暂停:通过监听 mouseentermouseleave 事件暂停/恢复滚动。
  • 触摸支持:添加 touchstarttouchend 事件处理,提升移动端体验。

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

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

h5实现图片压缩

h5实现图片压缩

使用Canvas API压缩图片 HTML5的Canvas API可以通过调整画布尺寸和图像质量来实现图片压缩。创建一个Canvas元素,将图片绘制到Canvas上,再通过toDataURL或toBl…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…