移动端公告条需用 overflow: hidden 和 white-space: nowrap 确保单行滚动;@keyframes 必须显式声明 0% 和 100%;animation-duration 应随文案长度动态调整;加 touch-action: none 防手势冲突;JS 更新内容时须强制重播动画。

移动端公告条必须用 overflow: hidden + white-space: nowrap
不加这两条,文字一长就换行或撑破容器,滚动直接失效。公告条本质是单行文本流,white-space: nowrap强制不折行,overflow: hidden确保超出部分被裁掉——这是滚动能“跑起来”的前提。别试图用 flex 或 grid 布局公告内容,它们会干扰文本流的连续性;也别给容器设 height 后再 line-height 垂直居中,移动端字体渲染差异大,容易上下偏移。
@keyframes 动画必须写满 0% 和 100% 关键帧
Safari 旧版(iOS 15.6 及更早)遇到 from/to 写法会跳帧甚至不动,必须显式声明位移起点和终点:
@keyframes scroll-left {
0% { transform: translateX(100%); }
100% { transform: translateX(-100%); }
}
只写 from { transform: translateX(100%); } to { transform: translateX(-100%); } 在部分 iOS 设备上会卡在初始位置。动画时长不能硬编码为固定值,内容越长,animation-duration 应越长,否则滚动到一半就重头开始,看起来像“闪退”。起始建议设为 25s,上线后根据实际文案长度微调。
移动端必须加 touch-action: none 防手势冲突
iOS Safari 和部分安卓 WebView 会把带 transform 的容器识别为可滚动区域,用户手指从公告条上滑过时,页面可能意外暂停滚动、或触发回弹,体验割裂。加这一行就能彻底禁用默认手势干预:
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
.notice-bar {
touch-action: none;
}
同时,will-change: transform 要加在动画元素(如 span)上,不是容器上,否则无效。如果公告内容含链接,确保 a 标签包裹在 span 内,且不额外加 pointer-events: none,否则点击无响应。
JS 动态更新内容时要强制重播动画
直接改 innerText 或 textContent 不会重启 CSS 动画,滚动会卡住或突兀跳变。正确做法是清空动画后再触发重绘:
- 临时移除动画类:
el.classList.remove('animated') - 强制重排:
void el.offsetWidth - 重新添加类:
el.classList.add('animated')
或者更稳妥地操作样式属性:el.style.animation = 'none'; el.offsetHeight; el.style.animation = 'scroll-left 25s linear infinite';。这点极易忽略——开发时静态内容看着没问题,上线后运营频繁更新公告,滚动就逐渐失灵。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










