当前位置:首页 > JavaScript

js实现图片循环滚动

2026-02-28 20:39:58JavaScript

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

使用CSS动画结合JavaScript

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

js实现图片循环滚动

<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值,适合需要精确控制滚动速度的场景。

js实现图片循环滚动

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
分享给朋友:

相关文章

vue实现图片拖拽

vue实现图片拖拽

实现图片拖拽功能 在Vue中实现图片拖拽功能可以通过HTML5的拖放API结合Vue的事件处理来完成。以下是一个完整的实现方法: 基础拖拽实现 为图片元素添加draggable属性并绑定相关事件:…

vue图片实现多选

vue图片实现多选

Vue图片多选实现方法 基础实现方案 使用v-model绑定数组配合input[type="checkbox"]实现多选功能。创建图片列表数据时,每个图片对象应包含唯一标识符: data() {…

css网页制作漂浮图片

css网页制作漂浮图片

使用CSS实现漂浮图片效果 通过CSS的animation属性和@keyframes规则可以轻松实现图片漂浮效果。以下是几种常见实现方式: 基础漂浮动画 通过关键帧定义图片的垂直移动,模拟漂浮感:…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现求导

js实现求导

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