CSS关键帧动画为什么不生效? UX-林莹 提问于 2026-02-24 22:11:17 阅读 9 前端 我写了个简单的淡入动画,但加到元素上完全没反应,控制台也没报错。试过改animation-name和调用方式,还是不行。 关键帧代码是这样写的: @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .my-element { animation: fadeIn 2s ease-in; } CSS3动画效果 我来解答 赞 2 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 ❤怡萱 Lv1 代码放这了,问题大概率出在你没加前缀或者没正确引用动画名 先确认几个点: 第一,你是不是在 animation 里漏写了 forwards? 默认动画结束后会回到初始状态,如果你希望停在最后状态,得加 animation-fill-mode: forwards; 第二,检查下你用的浏览器支不支持无前缀关键帧——现在主流浏览器都支持了,但如果你在旧版 Safari 或某些国产浏览器里跑,可能得加 -webkit- 前缀 第三,最常见坑:你是不是把 @keyframes fadeIn 写在了某个媒体查询或者嵌套在别的规则里?比如这样: @media (min-width: 768px) { @keyframes fadeIn { ... } } 这种写法是无效的,关键帧必须直接写在根作用域 再给你个完整能跑的最小示例,直接复制试试: <div class="my-element">测试</div> <style> @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .my-element { opacity: 0; animation: fadeIn 2s ease-in forwards; } </style> 要是还不动,把你的完整 HTML 和 CSS 贴出来,我帮你看看是不是被其他样式覆盖了——比如 pointer-events: none 或者 display: none 之后又改成 block,这种也会导致动画不触发 回复 点赞 1 2026-02-24 22:13 加载更多 相关推荐 2 回答 34 浏览 为什么内联关键CSS后首屏渲染反而更慢了? 我按照教程把关键CSS内联到HTML里了,但首屏渲染时间反而比之前多了500ms,这是为什么? 之前用Webpack的ExtractTextPlugin把CSS抽离成单独文件,加载时间约1.2秒。按首... UX-玉淇 优化 2026-02-05 17:38:55 1 回答 21 浏览 预加载图片时为什么会阻塞关键CSS加载? 我在电商详情页用预加载商品轮播图,但发现首屏渲染变慢了。用Lighthouse检查发现关键CSS的加载时间被图片占用了,这是为什么? 尝试过这样写: <link rel="preload" hr... 极客清梅 优化 2026-02-19 16:29:24 1 回答 30 浏览 为什么React的CSSTransition在页面切换时动画不连贯? 大家好,我在用React做路由切换动画时遇到问题。用了CSSTransition包裹路由组件,设置进入和离开的CSS类,但切换时动画总是先跳一下再执行过渡效果,这是为什么呢? 我尝试过给容器加fixe... 司空树恺 组件 2026-02-18 12:45:28 2 回答 15 浏览 为什么我的CSS旋转加载动画在页面加载时会突然卡顿一下? 我在做一个简单的旋转加载组件,用CSS3动画实现图标旋转。但每次页面加载时,图标会先显示0.5秒的静态状态,然后才开始旋转。我尝试过把animation-delay设为0和调整will-change属... 司马翌岍 组件 2026-02-16 18:11:24 2 回答 113 浏览 为什么给关键CSS文件添加了preload链接标签后加载速度反而变慢了? 我在优化网站首页加载时,给关键CSS文件加了preload标签:<link rel="preload" href="/styles/main.css">,但监控显示首屏渲染反而比之前慢了0... 上官毅蒙 优化 2026-01-29 18:12:28 2 回答 60 浏览 为什么我的CSS动画在Chrome渲染面板显示大量重排但实际很卡? 我在用Chrome DevTools的Rendering面板调试一个CSS动画,发现Layers里显示有很多蓝色的Layout区域,但实际动画在60帧时偶尔还是会卡顿。我用的是transform和op... 百里艺天 工具 2026-01-27 10:43:27 2 回答 67 浏览 内联关键CSS后Vue组件样式错乱怎么办? 我按教程把首屏关键CSS内联到HTML里了,但Vue组件的样式全乱了,是不是提取错了? 我用的是vue-cli项目,critical包提取了首页的关键CSS,然后手动塞进index.html的styl... ❤文博 优化 2026-02-24 00:46:21 1 回答 23 浏览 延迟加载非关键CSS后页面布局错乱怎么办? 我在做首屏优化时,把非关键的CSS用media="print"加onload的方式延迟加载,但发现页面一开始没样式,等CSS加载完又突然跳动,布局完全错乱了。是不是关键CSS提取得不对? 我现在的写法... UX-馨阳 优化 2026-02-23 19:20:22 2 回答 25 浏览 位运算优化CSS动画时为啥反而更卡了? 最近在优化一个无限滚动的CSS动画,尝试用位运算代替除法计算位置偏移,但发现帧率反而从60掉到30了。 比如这段代码用位运算右移代替除以2: .scroll-item { transform: tra... 极客浩迪 优化 2026-02-17 19:59:24 2 回答 43 浏览 为什么DllPlugin打包后样式文件没生效,打包后的dll里没有CSS内容? 我用Webpack的DllPlugin打包公共依赖时,发现生成的dll文件里没有包含我配置的CSS文件。虽然在entry里加入了样式表路径,但打包后的manifest.json里也没有相关记录。 尝试... 令狐若曦 前端 2026-02-13 22:49:26
先确认几个点:
第一,你是不是在
animation里漏写了forwards?默认动画结束后会回到初始状态,如果你希望停在最后状态,得加
animation-fill-mode: forwards;第二,检查下你用的浏览器支不支持无前缀关键帧——现在主流浏览器都支持了,但如果你在旧版 Safari 或某些国产浏览器里跑,可能得加
-webkit-前缀第三,最常见坑:你是不是把
@keyframes fadeIn写在了某个媒体查询或者嵌套在别的规则里?比如这样:这种写法是无效的,关键帧必须直接写在根作用域
再给你个完整能跑的最小示例,直接复制试试:
要是还不动,把你的完整 HTML 和 CSS 贴出来,我帮你看看是不是被其他样式覆盖了——比如
pointer-events: none或者display: none之后又改成block,这种也会导致动画不触发