2

如果 Mozilla 不打算对 FireFox 16 的渲染引擎进行向后兼容的新更改,我如何防止浏览器将 CSS3 非矩阵转换转换为矩阵?

下面是一个例子,说明它如何影响基于 JavaScript 的动画,以及它为什么对我很重要。

从我的 support.mozilla.org问题中粘贴

转到pilatch.com/cards并单击弧中的任何卡片。现在在 Chrome、Safari 或 IE 9 中执行相同的操作。我已经对我所有的 JavaScript 进行了清理,因此您可以更轻松地看到发生了什么。

FireFox 16 版中的 CSS3 转换正在转换为矩阵转换。它几乎让我的旋转和缩放动画感到厌烦。例如,如果您将元素的样式属性设置为 style="transform:scale(0.75)",FireFox 会立即将该元素的变换属性(例如 .style.transform)转换为“matrix(...)” .

我知道如何进行线性代数,通过 jQuery cssHooks 将旋转和缩放转换为矩阵转换,我什至编写了代码来检测浏览器的这个“功能”(它强制转换为矩阵),并返回一个过去两天在我的开发站点上编写矩阵变换而不是旋转变换或缩放的不同钩子。

然而,事实证明,让这个新特性与 jQuery 的动画兼容变得越来越具有挑战性。更进一步,我可能不得不破解 jQuery 以使其适用于 FireFox,或者完全放弃对 FireFox 动画的支持,除非某些 FireFox 开发人员使他们的新实现向后兼容。

我知道转换通常会在渲染引擎的幕后转换为矩阵。把你的矩阵放在那里。不要覆盖用户为转换输入的内容!

我也知道我应该使用 CSS3 动画,但是,dangit,我在这些动画得到广泛支持之前就开始了这个项目。我不能重写我所有的动画,因为我想支持 FireFox。这不是一个真正的选择。我会将我的用户引导至 Chrome。我在开发中还有更多使用这些类型的动画的功能,而且我已经陷入了太深而无法回头的境地。

4

0 回答 0