0

0

如何添加HTML滚动文字_跑马灯效果实现【方案】

蓮花仙者

蓮花仙者

发布时间:2025-12-21 21:57:54

|

602人浏览过

|

来源于php中文网

原创

可通过五种方式实现网页文字自动滚动:一、过时但兼容的marquee标签;二、符合现代标准的CSS动画;三、灵活可控的JavaScript方案;四、基于scroll-snap的分段跳变式;五、轻量第三方库Marquee.js。

如何添加html滚动文字_跑马灯效果实现【方案】

如果您希望在网页中实现文字自动滚动的视觉效果,即传统意义上的跑马灯效果,则可以通过多种HTML与CSS结合的方式达成。以下是几种可行的实现方案:

一、使用marquee标签实现

marquee标签是HTML早期原生支持滚动内容的元素,虽已被现代标准标记为过时,但在多数浏览器中仍可正常渲染,适合快速简易部署。

1、在HTML文档的body内插入<marquee>标签,并将需滚动的文字置于标签内部。

2、通过添加direction属性控制滚动方向,例如direction="left"表示向左滚动,direction="right"表示向右滚动。

立即学习前端免费学习笔记(深入)”;

3、通过behavior属性设定滚动行为,设置behavior="scroll"为连续平滑滚动,behavior="slide"为单次滑入后停止,behavior="alternate"为来回往复滚动。

4、通过scrollamount属性调整滚动速度,数值越大滚动越快,例如scrollamount="3"。

5、通过scrolldelay属性设置每次滚动的时间间隔(毫秒),例如scrolldelay="100"。

6、为提升兼容性与语义清晰度,建议包裹在<div>中并添加title属性说明内容用途,例如<marquee title="公告栏">欢迎访问本站!</marquee>。

二、使用CSS动画实现

CSS动画方式完全符合现代Web标准,具备更高可控性与可维护性,且支持响应式设计与无障碍访问优化。

1、创建一个容器元素,例如<div class="marquee"></div>,并在其中嵌套一行文本或多个内联元素。

2、为该容器设置white-space: nowrap;以防止文字换行,同时设置overflow: hidden;隐藏超出部分。

3、为内部文字元素设置display: inline-block;并应用animation属性,调用自定义@keyframes动画。

4、在@keyframes中定义from状态为transform: translateX(100%);,to状态为transform: translateX(-100%);,形成从右至左的位移效果。

5、设置animation-duration为滚动完整周期所需时间,例如30s;animation-timing-function为linear以保证匀速;animation-iteration-count为infinite实现无限循环。

6、为避免首尾衔接处出现空白间隙,可在内部文字后重复一次相同内容,或使用padding-right配合伪元素补全视觉流。

三、使用JavaScript动态控制滚动

JavaScript方案适用于需要实时更新内容、响应用户交互或精确控制启停时机的场景,灵活性最高。

1、创建一个固定宽度的容器,例如<div id="js-marquee"><span>滚动内容</span></div>。

2、获取该容器及内部文本元素的DOM引用,例如const container = document.getElementById('js-marquee'); const text = container.querySelector('span');

Vondy
Vondy

下一代AI应用平台,汇集了一流的工具/应用程序

下载

3、克隆text节点并追加到container末尾,形成双份内容以支撑无缝循环。

4、初始化偏移量变量offset = 0,设定滚动步长step = 0.5,定时器间隔interval = 30ms。

5、使用requestAnimationFrame或setInterval驱动循环,每次更新container.style.transform = 'translateX(' + (-offset) + 'px)';

6、当offset大于等于文本总宽度时,重置offset为0并清除已应用的transform,避免数值过大影响性能。

四、使用CSS scroll-snap与滚动容器模拟

该方法利用CSS滚动容器特性与scroll-snap-align,通过强制滚动位置对齐实现分段式“跳变”跑马灯,适用于展示卡片式条目。

1、创建一个具有overflow-x: auto;和scroll-behavior: smooth;的外层容器。

2、在容器内放置多个并排的子元素,每个子元素设置flex: 0 0 auto;及width: fit-content;。

3、为每个子元素设置scroll-snap-align: start;,并在外层容器上启用scroll-snap-type: x mandatory;。

4、使用JavaScript在指定时间间隔后调用element.scrollBy({ left: element.clientWidth, behavior: 'smooth' });

5、当滚动至末尾时,通过scrollTo({ left: 0, behavior: 'instant' })重置至起始位置,形成循环效果。

6、为防止用户手动拖拽干扰自动滚动,可在滚动开始前添加pointer-events: none;,并在动画帧结束后恢复。

五、使用第三方轻量库Marquee.js

Marquee.js是一个专为跑马灯设计的微型JavaScript库,仅约2KB,无依赖,提供暂停、加速、反向等内置控制接口。

1、通过script标签引入Marquee.js文件,或使用npm install marquee-js后import引入。

2、为待滚动区域添加唯一id,例如<div id="marquee-container">这里是滚动文字</div>。

3、在页面加载完成后执行new Marquee(document.getElementById('marquee-container'), { direction: 'left', speed: 2 });

4、speed参数控制每秒移动像素数,direction可选'left'、'right'、'up'、'down',默认为'left'。

5、调用实例方法.pause()可临时停止滚动,.resume()恢复,.togglePause()切换状态。

6、若需多实例共存,应为每个容器分别初始化独立Marquee对象,并保存其引用以便后续控制。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

203

2023.11.20

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

564

2023.09.20

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1958

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

658

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2401

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

47

2026.01.19

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

891

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

32

2025.12.06

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 43万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号