当前位置: 首页 > 面试题库 >

IE10 / 11使用transition:-webkit-transform吗?

郜卓君
2023-03-14
问题内容

请在IE10或11中查看此JSBin。

如果您检查#test元素,您将看到它将transition属性显示为-webkit-transform(并且不会发生过渡)。如果您注释掉transition: -webkit-transform;声明,如在这里,然后过渡工作。

IE为什么不将供应商前缀的值删除为无效的属性值?顺便说一句,如果我在Chrome上执行类似的操作(例如,输入-ms-transition之后),-webkit-transition它将按原样删除它,并仅使用-webkit-transition声明。似乎仅在IE上,这是一个问题。


问题答案:

我只是对此进行了更多研究,它看起来更像是一个Chrome错误,而不是IE。

这是规范中)有关无法识别和不可动画化的属性的说明transition-property

如果列出的标识符之一不是公认的属性名称或不是可设置动画的属性,则实现仍必须使用列表中相应索引处的持续时间,延迟和计时功能,在列表中的可设置动画属性上开始转换。过渡持续时间”,“过渡延迟”和“过渡计时功能”。换句话说,必须将无法识别或无法动画处理的属性保留在列表中,以保留索引的匹配。

该规范似乎 没有
考虑到指定属性均不受支持或无法设置动画的情况,即使在过渡propdefs之后的部分中也是如此。似乎IE会将声明视为有效,尽管没有要转换的受支持属性,从而覆盖了先前的声明,并有效地使该声明等效于transition- property: none(即结果相似,但是如您所见,该值实际上并没有计算到none)。

Firefox的行为似乎与IE相同,将声明等同于transition-property: none

此外,如果将未添加前缀和前缀的transform属性名称放在同一声明中,则IE和Firefox将使转换动画效果很好(顺序无关紧要):

transition: -webkit-transform 1s, transform 1s;

但是,如果您放置了您希望与会导致Chrome删除声明的无法识别的属性一起使用的任何其他属性,它 仍然
会删除该声明。是的,在IE和Firefox在上述声明中正确应用转换的地方, Chrome会完全忽略它

不过,似乎只有未知的属性名称才有此问题。例如,如果您指定一个受支持但不能设置动画的属性,例如background-image

transition: -webkit-transform 1s, background-image 1s;

Chrome可以对转换进行动画处理。

综上所述,我仍然不确定该规范是否模棱两可,或者IE和Firefox中显示的行为实际上是否正确。听起来这两种方法都可能需要一些澄清,所以我继续将有关此问题的[电子邮件发送给CSSWG。



 类似资料:
  • 问题内容: 出于某种原因,在我的webkit-transform属性动画出现之前,有轻微的闪烁。这是我在做什么: CSS: JavaScript: 在过渡发生之前,会出现闪烁。知道为什么会这样,如何解决这个问题? 谢谢! 更新: 仅在Safari中发生。尽管动画可以工作,但在Chrome中不会发生这种情况。 问题答案: 这里提到了解决方案:[iPhone WebKitCSS动画会导致闪烁]。 对于

  • 问题内容: 我正在使用-webkit-transform(和-moz-transform /-o-transform)来旋转div。还添加了固定的位置,以便div与用户一起滚动。 在Firefox中工作正常,但在基于Webkit的浏览器中却坏了。使用-webkit-transform后,固定的位置不再起作用!那怎么可能? 问题答案: 经过一番研究,出现了一个错误报告上的Chromium网站上关于这

  • 本文向大家介绍transition、animation、transform三者有什么区别?相关面试题,主要包含被问及transition、animation、transform三者有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 transition:一般是通过 hover来对所选择的样式进行变化 animation:用于指定元素样式动画 可以分帧设计。0% ~ 100% transform

  • 问题内容: 更新资料 很抱歉未能添加次要细节,我们也使用来将许多元素叠加在一起。处理更多此问题之后,似乎实际上与排序混乱,并且实际问题与动画本身无关。 结束更新 我目前在一个项目中,我们在该项目中开发了一个非常注重CSS3动画的应用程序。我们在和周围围绕了许多元素。 一切都很好,直到今天页面的所有要动画的元素都消失了。看来Google Chrome已从 12.xx 更新到 13.0.782.107

  • 问题内容: 由于某些原因 在Safari 11中显示为未旋转。 Chrome 63可以正确呈现它。 有什么问题? 谢谢! 问题答案: 在SVG 1.1中,元素不支持转换属性。在SVG2中,建议它们应该。 Chrome和Firefox实现了SVG 2规范的这一部分,而Safari尚未实现,而IE11则从未实现。 在不支持SVG2功能的浏览器中,可以通过用元素替换元素或在元素上创建子元素并将转换放在元

  • 问题内容: 我使用旋转元素,-webkit-transform: rotate()而在Chrome14.0.835.2dev-m中,它对元素内部的文本确实做了一些奇怪的事情。它使我想起了使用“平滑”抗锯齿而不是“清晰”旋转文本时在Photoshop中获得的类似效果。 有人知道这是怎么回事吗?它特定于此Webkit或Chrome版本,还是可以解决此问题?(这也不是消除列表元素之间边界的锯齿) Her