必须将自定义动画定义在theme.extend.keyframes下,值为纯对象,键为'0%'/'100%',值为'transform: translateX(...)'格式的完整CSS声明;animation需在theme.extend.animation中配置为'marquee 8s linear infinite'格式。
直接在
里定义自定义
是可行的,但必须严格遵循 Tail
win
d 的扩展语法 —— 错一个键名或值格式,
类就完全不会生效。
必须把 keyframes 写在
下
Tailwind 不识别
或
这类路径。只认
这个固定位置,且值必须是纯对象:
键名只能是
、
或
、
(不支持中间帧如
)
每个键对应的值必须是合法 CSS 声明字符串,例如
,不能简写成
属性名和冒号之间不能有空格,冒号后必须有单引号包裹的完整声明值
错误示例:
(缺
);正确写法:
animation 工具类要绑定 duration 和 timing-function
里的值不是 CSS 动画名,而是完整的动画声明字符串,格式为:
:
立即学习
“
前端免费学习笔记(深入)
”;
必须带单位,如
、
,不能只写
推荐用
实现匀速滚动;若用
会导致启停卡顿,破坏循环感
不支持
或
,这些必须靠 HTML 元素 class 或内联样式控制
示例配置:
Trae win
Trae Windows 官方版本现已全面支持 Win10 和 Win11 系统(64位)。国内开发者可直接访问 Trae 中文官网(trae.cn 或 trae.com.cn),一键下载官方正版 .exe 安装包,享受国内直连的高速稳定体验。安装过程极其简便,双击即可运行,并支持一键无缝导入 VS Code 或 Cursor 的原有主题、快捷键及插件配置。登录支持手机号、微信或稀土掘金账号。内置免费的豆包与 DeepSeek 等顶级大模型,让你开箱即用,轻松开启高效的 AI 智能编程之旅。
下载
HTML 中使用时需确保元素宽度与动画路径匹配
仅加
不够 —— 跑马灯失效最常见的原因是元素本身没“跑起来”,根源在布局:
父容器建议设
,否则动画移出区域的内容仍可见
滚动元素需设
(如果是文字)或明确
(如果是图片/子容器),避免换行打断连续位移
是从视口右边缘开始,
是向左移自身宽度;两者配合才能无缝衔接,若用
会因容器宽度变化导致跳帧
典型结构:
调试时优先检查生成的 CSS 是否存在
Tailwind 不报错也不提示 keyframes 缺失,它只是静默忽略非法配置。最有效的验证方式是:
打开浏览器开发者工具,搜索
,确认是否出现在生成的 CSS 中
若没出现,回查
是否漏了
层级,或 keyframes 对象被意外写到了
里
若出现但动画不动,用
检查元素是否真应用了
属性,常见干扰是父级
导致子元素被拉伸变形,影响
计算
真正容易被忽略的是:Tailwind 的 keyframes 扩展不支持动态参数(比如根据内容宽度自动算 duration),所有时间值都得硬编码,需要滚动速度变化时,只能手动改配置再重启构建。
tailwind.config.js@keyframesanimate-theme.extend.keyframestheme.keyframestheme.animation.keyframestheme.extend.keyframes'from''to''0%''100%''50%'transform: 'translateX(0)'translateX(0){ '0%': 'translateX(100vw)' }transform:{ '0%': 'transform: translateX(100vw)' }theme.extend.animation'keyframes-name duration timing-function'duration'2s''3000ms'2timing-function'linear''ease-in-out'iteration-countdirectionmodule.exports = {
theme: {
extend: {
keyframes: {
'marquee': {
'0%': 'transform: translateX(100vw)',
'100%': 'transform: translateX(-100%)',
}
},
animation: {
'marquee': 'marquee 8s linear infinite',
}
}
}
}animate-marqueeoverflow-hiddenwhitespace-nowrapinline-blocktranslateX(100vw)translateX(-100%)-100vw
内容1
内容2
内容3
@keyframes marqueetailwind.config.jsextendpluginsgetComputedStyleanimationdisplay: flextranslateX