当前位置:首页 > JavaScript

js 实现走马灯

2026-03-01 06:51:53JavaScript

实现走马灯效果的方法

使用CSS动画和JavaScript控制

通过CSS的@keyframes定义动画,结合JavaScript动态控制内容切换。

<div class="marquee-container">
  <div class="marquee-content">这里是走马灯内容1 | 内容2 | 内容3</div>
</div>
.marquee-container {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
}
.marquee-content {
  display: inline-block;
  animation: marquee 10s linear infinite;
}
@keyframes marquee {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}
// 动态更新内容
document.querySelector('.marquee-content').textContent = '新内容1 | 新内容2';

纯JavaScript实现

通过定时器动态修改元素位置实现滚动效果。

<div id="marquee" style="width:300px;overflow:hidden;">
  <span id="marqueeText">需要滚动的文字内容</span>
</div>
const marquee = document.getElementById('marquee');
const text = document.getElementById('marqueeText');
let position = marquee.offsetWidth;

function scrollMarquee() {
  position--;
  if (position < -text.offsetWidth) {
    position = marquee.offsetWidth;
  }
  text.style.transform = `translateX(${position}px)`;
  requestAnimationFrame(scrollMarquee);
}

scrollMarquee();

使用第三方库

例如使用jQuery插件快速实现:

<div class="marquee">滚动内容</div>
$('.marquee').marquee({
  duration: 5000,
  gap: 50,
  delayBeforeStart: 0,
  direction: 'left',
  duplicated: true
});

响应式走马灯

添加窗口大小监听,自适应容器宽度:

function initMarquee() {
  const container = document.querySelector('.marquee-container');
  const content = document.querySelector('.marquee-content');

  function updateSpeed() {
    const widthRatio = content.scrollWidth / container.offsetWidth;
    content.style.animationDuration = `${10 * widthRatio}s`;
  }

  window.addEventListener('resize', updateSpeed);
  updateSpeed();
}

initMarquee();

垂直走马灯

修改CSS实现垂直滚动效果:

js 实现走马灯

.marquee-vertical {
  height: 100px;
  overflow: hidden;
}
.marquee-content-vertical {
  animation: marquee-vertical 5s linear infinite;
}
@keyframes marquee-vertical {
  0% { transform: translateY(100%); }
  100% { transform: translateY(-100%); }
}

关键点在于根据实际需求选择实现方式,CSS方案性能较好但控制灵活性较低,纯JavaScript方案可实现更复杂的交互逻辑。

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

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现导航菜单

js实现导航菜单

使用HTML和CSS创建基础结构 导航菜单的基础结构通常由HTML的无序列表(<ul>)和列表项(<li>)组成,每个列表项包含一个链接(<a>)。CSS用于样式化…