当前位置:首页 > JavaScript

js 实现走马灯

2026-01-30 15:48:19JavaScript

实现走马灯效果的方法

使用CSS动画和HTML结构

通过CSS的@keyframestransform属性实现水平滚动的走马灯效果。HTML结构需将内容包裹在容器内,CSS设置动画循环移动。

js 实现走马灯

<div class="marquee">
  <div class="marquee-content">这里是走马灯内容,可以替换为任意文本或元素。</div>
</div>
.marquee {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
}
.marquee-content {
  display: inline-block;
  animation: scroll 10s linear infinite;
}
@keyframes scroll {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}

使用JavaScript动态控制

通过定时器动态修改元素的lefttransform属性,实现更灵活的交互控制(如暂停、调速)。

js 实现走马灯

const marquee = document.querySelector('.marquee-content');
let position = 0;
const speed = 2;

function animate() {
  position -= speed;
  if (position <= -marquee.offsetWidth) {
    position = document.querySelector('.marquee').offsetWidth;
  }
  marquee.style.transform = `translateX(${position}px)`;
  requestAnimationFrame(animate);
}
animate();

无缝循环的优化方案

克隆内容节点并拼接,当原始内容滚动完成后立即显示克隆内容,避免视觉断层。

const container = document.querySelector('.marquee');
const content = document.querySelector('.marquee-content');
content.innerHTML += content.innerHTML; // 克隆内容

let scrollPos = 0;
setInterval(() => {
  scrollPos += 1;
  if (scrollPos >= content.offsetWidth / 2) {
    scrollPos = 0;
  }
  container.scrollLeft = scrollPos;
}, 20);

响应式处理

通过监听窗口大小变化,动态调整走马灯速度或布局。

window.addEventListener('resize', () => {
  const viewportWidth = window.innerWidth;
  document.querySelector('.marquee-content').style.animationDuration = 
    viewportWidth < 768 ? '15s' : '10s';
});

注意事项

  • 性能优化:使用transform代替left属性,避免重排。
  • 内容长度:确保内容宽度足够,否则动画可能不连贯。
  • 兼容性:老旧浏览器需添加-webkit-前缀。

标签: 走马灯js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 j…

js实现列表

js实现列表

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

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm…

js实现报表

js实现报表

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

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…