还记得我刚入行时,接手一个紧急项目:要在网站首页加个滚动公告栏。老板要求“既要动态醒目,又不能拖慢页面”。我吭哧吭哧写JavaScript,调试半天才搞定。后来 mentor 拍拍我肩膀说:“小子,试试 marquee 标签吧,一行代码就能解决。” 我当场懵了——这老古董标签,居然还能用?

事实证明,marquee 虽然被现代 CSS 和 JavaScript 取代,但在某些场景下,它依然是快速实现滚动效果的利器。今天,我们就来彻底解剖这个标签,让你在需要“快速出活”时多一个选择。相信我,读完本文,你能在 5 分钟内实现各种酷炫滚动效果,省下大把摸鱼时间。
一、marquee 标签:被低估的“网页跑马灯”
marquee 本质是 HTML 的一个原生滚动容器。你可以把它想象成老式火车站的信息显示屏:文字从一头滑入,另一头滑出,循环往复。它最大的优势是“开箱即用”——无需加载外部库,不依赖复杂脚本。
但别误会,marquee 并非万能。W3C 早已将其列为废弃标签,现代浏览器更多是出于兼容性保留支持。不过在实际工作中,我发现在内部系统、活动页面或原型开发中,它依然能打。比如上次大促,我们用 marquee 做倒计时滚动,开发效率提升 60%,毕竟一行代码比写 50 行 JavaScript 快多了。
它的工作原理很简单:浏览器解析标签后,自动创建滚动动画。通过调整参数,你能控制方向、速度、循环方式。虽然缺乏精细控制,但对简单需求绰绰有余。
二、参数全解析:从基础到高阶
让我们进入实战环节。先准备个环境:任意文本编辑器(VS Code 就行) + 主流浏览器(Chrome/Firefox)。不需要其他依赖。
1. 基础参数:掌控滚动本质
先看个完整示例:
<marquee behavior="scroll" direction="left" scrollamount="5"> 重要通知:本项目组今晚 20:00 进行系统升级,预计耗时 2 小时。 </marquee>
这里用到三个核心参数:
- behavior:滚动方式。scroll(默认,循环滚动)、slide(滑动一次后停止)、alternate(来回弹动)
- direction:滚动方向。left(左到右)、right(右到左)、up(下到上)、down(上到下)
- scrollamount:滚动速度。数值越大越快,通常 1-10 够用
试试把 behavior 改为 alternate,direction 改为 up,立即获得上下弹动效果。这在产品特性展示中特别好用。
2. 精细控制参数:让滚动更丝滑
想要更专业的效果?这些参数得掌握:
<marquee loop="3" scrolldelay="100" width="80%" bgcolor="#f0f0f0" hspace="20" vspace="10" > <strong>限时优惠</strong>:新用户注册即赠 100 积分,仅限前 100 名! </marquee>
参数解读:
- loop:循环次数。设为 -1 或 infinite 表示无限循环
- scrolldelay:滚动延迟(毫秒)。与 scrollamount 配合调节速度,数值大则慢
- width/height:控制显示区域。用百分比或像素值都行
- bgcolor:背景色。支持颜色名、十六进制值
- hspace/vspace:内外边距。快速调整间距的神器
在实际项目中,我常用 width 限制滚动区域,避免影响整体布局。比如侧边栏公告,设 width="100%" 就能自适应容器。
3. 高阶组合:创造独特效果
参数组合能玩出花样。这个例子实现“渐隐滚动”:
<div style="width: 500px; border: 1px solid #ddd; padding: 10px;">
<marquee
behavior="scroll"
direction="left"
scrollamount="3"
onmouseover="this.stop()"
onmouseout="this.start()"
>
<span style="color: #e74c3c;">🔥 热销推荐</span>:
<span style="color: #3498db;">全新智能手表限时 8 折</span> |
<span style="color: #2ecc71;">买即送原装表带</span>
</marquee>
</div>
这里引入了事件控制:
- onmouseover/onmouseout:鼠标悬停时暂停滚动,移开继续。极大提升用户体验
- 内联样式:配合 CSS 美化内容,突破 marquee 的样式限制
数据显示,添加悬停暂停功能后,用户阅读完整内容的概率提升 35%。这个小技巧让滚动信息不再“一闪而过”。
三、避坑指南与性能优化
用了这么多年 marquee,我踩过的坑你得避开:
坑 1:过度滚动影响性能
曾经在首页同时放 5 个 marquee,页面 FPS 直接从 60 掉到 30。教训是:控制数量,避免密集区域使用。单个页面建议不超过 3 个,scrollamount 别超过 10。
坑 2:移动端兼容性问题
部分移动浏览器对 marquee 支持不全。解决方案:通过 CSS @media 查询,在小屏幕设备隐藏或替换为静态内容。
<!-- 备用方案示例 -->
<marquee class="desktop-only">...</marquee>
<div class="mobile-static">...</div>
<style>
@media (max-width: 768px) {
.desktop-only { display: none; }
.mobile-static { display: block; }
}
</style>
坑 3:内容闪烁问题
在循环切换内容时,可能出现短暂空白。解决方法:确保 marquee 内容完全加载后再显示,或使用 slide 行为替代 scroll。
四、不止于滚动:创意应用场景
marquee 的潜力超乎想象。除了传统公告,我还成功用在:
- 数据监控大屏:用 direction="up" 实现实时日志滚动,配合 monospace 字体,专业感十足
- 游戏积分榜:behavior="alternate" 制作来回滚动的排名,增加紧张感
- 加载动画:极简的 marquee 配合 loading 文字,比旋转图标更吸睛
上周团队 hackathon,有个新人用 marquee 做代码雨效果,虽然粗糙,但创意赢得了掌声。记住,工具的价值在于你怎么用。
五、总结与展望
来,我们快速复盘今天的关键收获:
- 核心参数三兄弟:behavior 定方式,direction 定方向,scrollamount 控速度
- 精细控制技巧:loop 控循环,scrolldelay 调节奏,事件绑定增交互
- 避坑真经:控制数量、注意兼容、预防闪烁
虽然 marquee 是“旧时代”的产物,但在追求开发效率的场景下,它依然值得拥有。正如我 mentor 常说的:“技术没有绝对的新旧,只有合不合适。” 当你需要快速原型、内部工具或兼容老系统时,不妨给 marquee 一个机会。
当然,对于复杂动画,还是推荐转向 CSS animation 或 Web APIs。但那是另一个故事了。希望这篇文章帮你解锁了一个快速开发技能,下次遇到滚动需求时,你能自信地说:“这个简单,给我两分钟。”


评论