【发布时间】:2014-10-23 15:52:53
【问题描述】:
我一直在玩 CSS 过渡并制作了这个 JSFiddle
transition 属性目前受到所有主要浏览器的支持,并且也不需要供应商前缀(但我已将它们包含在我的小提琴中)。我还在W3C site 上搜索了transition-duration 的一些已知问题,但没有找到。
HTML
<div class="foo"></div>
CSS
.foo {
background: #4FC093;
display: block;
width: 600px;
height: 600px;
box-shadow: 0 0 300px inset;
margin: 0 auto;
border-radius: 50%;
cursor: pointer;
transition: all 10s ease;
}
.foo:hover {
width: 100px;
height: 100px;
box-shadow: 0 0 50px inset;
}
Google Chrome / webkit 浏览器的问题
如果我在过渡结束之前移除光标,它会通过 (
10s) 过渡属性中定义的持续时间返回到初始状态。例如:
我在1s播放过渡后移除了光标,它通过10s回到了初始状态。在 Firefox 和 IE10+ 中,变回初始状态的持续时间与实际过渡播放时间的持续时间相同。
要查看它的实际效果,请将鼠标悬停在 .foo div 上,并在过渡开始时快速移除光标。
[ PS:10s 的持续时间可能很无聊,但我已经这样做了清楚地观察问题。 ]
【问题讨论】:
-
据我所知,这是 Chrome 的新行为。他们还刚刚推出了 M37 的更新,所以这可能是该版本的一个新问题......绝对很奇怪。
-
我使用的是 Windows,无法在 Safari 上进行测试。但是最新版本的 Opera 也给出了这种奇怪的输出。
-
FWIW,我刚刚在 Safari 上进行了测试,它具有相同的行为。
-
@NicoO 感谢您的链接。阅读段落。因此,“预期的行为是第二个过渡更短”。会成为标准吗?然后 webkit 不遵循标准。但是.. 我可以看到它通过了该链接中的大部分测试。
-
我不想污染 cmets 以获得更好的,但是是的:我认为 Chrome 没有显示出预期的行为。我们可以讨论什么是正确的行为,因为保证转换运行时也是一个很好的特性。但这在这一点上肯定感觉不自然。我认为 Firefox 在这里做得更好。显示的行为可以成为可选的计时功能,但希望不是默认的。
标签: css google-chrome webkit css-transitions