当前位置:首页 > 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
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js实现变形

js实现变形

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

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…