当前位置:首页 > 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实现垂直滚动效果:

.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实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现图表

js实现图表

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

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现选题

js实现选题

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

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…