<…">
当前位置:首页 > JavaScript

js实现跑马灯

2026-02-28 20:43:05JavaScript

实现跑马灯效果的方法

使用CSS动画和HTML

通过CSS的@keyframestransform属性实现水平滚动的跑马灯效果。

<div class="marquee">
  <p>这是一段需要滚动的文字内容,可以根据实际需求调整。</p>
</div>
.marquee {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
}

.marquee p {
  display: inline-block;
  animation: marquee 10s linear infinite;
}

@keyframes marquee {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}

使用JavaScript动态控制

通过JavaScript动态修改元素的leftmargin-left属性实现滚动效果。

js实现跑马灯

<div class="marquee-js">
  <p>这是一段需要滚动的文字内容,可以根据实际需求调整。</p>
</div>
const marquee = document.querySelector('.marquee-js p');
let position = 0;

function animate() {
  position--;
  marquee.style.transform = `translateX(${position}px)`;

  if (position < -marquee.offsetWidth) {
    position = window.innerWidth;
  }

  requestAnimationFrame(animate);
}

animate();

使用marquee标签(不推荐)

HTML原生提供了<marquee>标签,但已过时,不建议在生产环境中使用。

js实现跑马灯

<marquee behavior="scroll" direction="left">
  这是一段需要滚动的文字内容,可以根据实际需求调整。
</marquee>

实现垂直滚动的跑马灯

通过修改CSS的transform属性实现垂直方向的滚动效果。

@keyframes marquee-vertical {
  0% { transform: translateY(100%); }
  100% { transform: translateY(-100%); }
}

控制动画暂停与继续

通过JavaScript控制CSS动画的播放状态。

const marquee = document.querySelector('.marquee p');

marquee.addEventListener('mouseenter', () => {
  marquee.style.animationPlayState = 'paused';
});

marquee.addEventListener('mouseleave', () => {
  marquee.style.animationPlayState = 'running';
});

以上方法提供了多种实现跑马灯效果的方案,可根据实际需求选择适合的方式。CSS动画方案性能较好,适合简单场景;JavaScript方案更灵活,适合复杂交互需求。

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

相关文章

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…

js实现刷新

js实现刷新

刷新当前页面 使用 location.reload() 方法可以强制刷新当前页面。该方法接受一个布尔参数,默认为 false,表示从缓存中加载页面;设为 true 时强制从服务器重新加载。 // 从…

js实现vue组件

js实现vue组件

使用原生JavaScript实现类似Vue的组件功能 基础组件结构 创建一个简单的组件系统需要实现数据绑定、模板渲染和事件处理。以下是一个基础实现框架: class Component { co…

vue.js实现loading

vue.js实现loading

实现全局Loading组件 在Vue.js中可以通过自定义组件实现全局Loading效果。创建一个独立的Loading组件,通过Vue的插件机制全局注册。 创建Loading组件 <temp…

js 实现预加载

js 实现预加载

预加载的基本概念 预加载是一种优化技术,通过在页面加载初期提前请求资源,减少用户后续操作的等待时间。常见场景包括图片、音频、视频或关键脚本的提前加载。 使用<link rel="preload…