CSS转换和CSS动画的用例
据我所知,没有这样的东西我们可以实现使用css转换,但我们不能实现使用css动画,但反之亦然 也就是说,任何转换都有一个css动画等价物。 比如说这个,CSS转换和CSS动画的用例,css,css-transitions,css-animations,Css,Css Transitions,Css Animations,据我所知,没有这样的东西我们可以实现使用css转换,但我们不能实现使用css动画,但反之亦然 也就是说,任何转换都有一个css动画等价物。 比如说这个, .ablock:hover { position: relative; -moz-transition-property: background-
.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关键帧、@-webkit关键帧等复制粘贴大量代码
对于javascript的控制,灵活性和复杂性动画是更合适的工具(至少乍一看是这样)。那么,什么是用例
UPD:
好的,让我试着列出在问题中发现的有趣信息
- 这是罗曼·科马罗夫的作品。比方说,我们有一个div和子div。当父div悬停时,我们正在转换子元素。一旦我们拿走鼠标,转换就会被取消。取消的持续时间正是我们已经花在过渡上的时间。动画“立即”取消。然而,我不知道这两种行为有多标准
- 动画可以循环(当然也可以有关键帧)
- 转换可以更加灵活,您可以轻松地在不同的环境中转换到不同的值
- 您只需告诉哪些属性必须设置动画,以及在哪些条件下(使用不同的选择器)
- 您可以通过不同的方式触发转换:
- 更改CSS中伪类的属性:hover、:active等(创建纯CSS UI)
- 为不同的目的更改不同类中的属性
- 更改内联样式中的属性:与JS结合使用,它比动画更强大
a {
color: #000;
transition: color .4s ease;
}
a:hover {
color: #888;
}
a:active {
color: #faa;
}
你是独立的,你选择哪种颜色。
现在,如果要使用动画样式,必须显式设置动画状态的颜色值。而且,您无法在三种状态之间轻松设置动画:正常、悬停和活动。您需要更复杂的定义。我将尝试这一个与动画:
a {
color: #000;
animation-duration: 0.4s;
animation-fill-mode: forwards;
animation-name: toDefault;
}
a:hover {
animation-duration: 0.4s;
animation-fill-mode: forwards;
animation-name: toHover;
}
a:active {
animation-duration: 0.4s;
animation-fill-mode: forwards;
animation-name: toActive;
}
@keyframes toDefault {
to {
color: #000;
}
}
@keyframes toHover {
to {
color: #888;
}
}
@keyframes toActive {
to {
color: #faa;
}
}
现在,这不包括动画恢复到之前的状态。我不确定你能不能把它拿来
简而言之:通过变换,您可以为未定义的一组属性和值设置动画,而关键帧动画用于定义良好的动画和/或变换。Roman,谢谢您的回答,但老实说,我不明白主要意思。你能给我一个css转换的例子,我们不能通过css动画来实现吗?@shabunc你可以通过动画来实现任何一个转换,但是我知道你不能在它运行时改变它(或者很难做到)。@shabunc,在许多情况下,转换非常容易:看-在这里你只改变了一个属性(
left
或top
),转换就可以了,但是如果你尝试用动画来实现这一点…你必须为滑块的每一个可能的转换都做一个。Roman,我给你这个奖励。但令人遗憾的是,社区并不真正欣赏这样的问题。我欣赏这个问题和回答。在chrome中,这些例子并不等同——在第一个例子中,鼠标悬停时变为粉红色,然后停留在那里(直到你移开鼠标),而在第二个例子中变为粉红色,完成后,将切换回默认值:。此外,在动画中执行过渡计时功能(如“缓入缓出”)有多容易?我试图找出当您将鼠标移离某个元素时如何使颜色转换返回,但无法使其工作:。也许那是不可能的?因此,这将是一个主要的区别——以及无法持久化转换后的值。