当前位置:首页 > JavaScript

js实现图片循环滚动

2026-02-28 20:39:58JavaScript

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

使用CSS动画结合JavaScript

通过CSS的@keyframes定义动画效果,JavaScript动态控制动画启停和重置。HTML结构中需要将图片横向排列在容器内。

<div class="scroll-container">
  <div class="image-track">
    <img src="image1.jpg" alt="">
    <img src="image2.jpg" alt="">
    <!-- 更多图片 -->
  </div>
</div>
.scroll-container {
  width: 100%;
  overflow: hidden;
}
.image-track {
  display: flex;
  animation: scroll 20s linear infinite;
}
@keyframes scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
const track = document.querySelector('.image-track');
// 克隆图片节点实现无缝循环
track.innerHTML += track.innerHTML;
// 鼠标悬停暂停动画
track.addEventListener('mouseenter', () => {
  track.style.animationPlayState = 'paused';
});
track.addEventListener('mouseleave', () => {
  track.style.animationPlayState = 'running';
});

纯JavaScript实现动态滚动

通过定时器动态修改translateX值,适合需要精确控制滚动速度的场景。

const container = document.querySelector('.scroll-container');
const track = document.querySelector('.image-track');
let position = 0;
const speed = 1; // 像素/帧

function animate() {
  position -= speed;
  if (position <= -track.scrollWidth/2) {
    position = 0;
  }
  track.style.transform = `translateX(${position}px)`;
  requestAnimationFrame(animate);
}
animate();

使用第三方库(Swiper.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>
</div>
import Swiper from 'swiper';
new Swiper('.swiper', {
  loop: true,
  autoplay: {
    delay: 3000,
  },
  speed: 800
});

注意事项

  • 图片容器宽度应设置为所有图片总宽度,避免出现空白
  • 移动端需添加touch事件支持
  • 性能优化:对图片使用will-change: transform提升渲染性能
  • 无限循环建议克隆首尾图片,避免出现滚动间隙

js实现图片循环滚动

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

相关文章

js实现动画

js实现动画

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

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现图片轮播

js实现图片轮播

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

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…