据我了解,没有这样的事情我们可以使用 css 过渡来实现,但我们不能使用 css 动画来实现,反之亦然。
也就是说,任何过渡都具有等效的 css 动画。比如这个
.ablock:hover {
position: relative;
-moz-transition-property: background-color, color;
-moz-transition-duration: 1s;
-webkit-transition-property: background-color, color;
-webkit-transition-duration: 1s;
color: red;
background-color:pink;
}
相当于以下内容:
.ablock:hover {
-moz-animation-duration:1s;
-moz-animation-name:transition;
-webkit-animation-duration:1s;
-webkit-animation-name:transition;
}
@-moz-keyframes transition {
to {
color: red;
background-color: pink;
}
}
@-webkit-keyframes transition {
to {
color: red;
background-color: pink;
}
}
我的问题是 - 如果我们谈论支持 CSS 转换和动画的浏览器,选择一种或另一种方法的用例是什么?至于过渡,我只能举出一个——它们的语法更简洁,我们不必为@-moz-keyframes、@-webkit-keyframes 等复制粘贴大量代码。
至于来自 javascript 的控制,灵活性和复杂性动画是更合适的工具(至少,乍一看)。那么,什么是用例?
UPD: 好的,让我尝试列出问题中发现的有趣信息。
- 这是由 Roman Komarov 提供的。比如说,我们有一个 div 和一个子 div。当父 div 悬停时,我们正在转换子元素。一旦我们拿走鼠标,过渡就会被取消。取消的持续时间正是我们已经花费在过渡上的时间。动画“立即”取消。不过,我不知道这两种行为有多标准。