You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加浏览器前缀后Firefox中多参数rotate属性动画失效问题

问题原因

核心是两个浏览器特性叠加导致的:

  • 前缀@keyframes的新特性适配废弃
    Firefox 早在 16 版本就已经全面支持标准无前缀的@keyframes规则,之后就停止了对老旧前缀规则@-moz-keyframes的新特性兼容。你使用的四参数rotate语法属于较新的CSS独立变换属性扩展,仅在标准@keyframes中被Firefox支持,写在@-moz-keyframes里的四参数rotate会被判定为无效语法,整个带前缀的动画规则会被识别为空动画。
  • 同前缀动画优先级更高
    你在:hover规则中同时声明了带前缀的-moz-animation-name: object-skew和标准animation-name: object-skew,Firefox会优先匹配同名的带前缀@-moz-keyframes规则,哪怕该规则内部属性全部无效,也不会降级使用后面的标准@keyframes,最终就出现了动画不触发的问题。

为什么替换为transform: rotate3d后恢复正常

rotate3d是CSS Transform中早就标准化的属性,老旧的@-moz-keyframes规则对它的支持是完整的,即便Firefox优先调用了带前缀的动画规则,内部的属性也能被正确解析,所以两个版本的代码都能正常运行。

仅保留Firefox支持的最简修复方案

直接删除所有带厂商前缀的@-webkit-keyframes、@-moz-keyframes、@-o-keyframes规则,以及对应的-webkit-*、-moz-*、-o-*开头的动画属性,仅保留标准无前缀的动画相关代码即可。


内容的提问来源于stack exchange,提问作者Lyra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:39:00