transition与keyframes配合hover形成动画的区别
前言
并没有多高深的见解,本篇只是单纯的复习动画效果。
keyframes可以用于动画效果
对于keyframes
,我们可以简单设定每个关键帧的具体状态,从而使得hover
能够触发一些动画。
比如,我们对position
为absolute
、left
为div
设定这样一个动画:
1 | @keyframes move-right { |
如果div
有颜色的话,那这个动画效果就像是让div
飞过去了一样。当然如果速度慢一点就是飘过去的。
但是,如果并不是那么巧,我们所设定的left
如果只有div
就会停在一半。
这个时候,如果把鼠标移出来,就会出现一个很尴尬的场景:
div
直接闪回了。那是因为鼠标移出后,hover
事件立即就结束了,对应的animation
设置也就直接结束了,div
恢复到
这可并不美观。
transition用于补足上述缺陷
这个时候,transition
就来了,它可以通过设定
1 | div { |
这样就表示,无论是什么情况,只要某个事件触发了div
的某种属性的改变,那么就会用
需要注意的是,
transition
需要放在div
下,而不是div:hover
下。
当然,transition
也并不是完美的。比如,linear-gradient
这类就没有办法。
并不是说transition
没有办法做到,而是说,linear-gradient
本身就不是个好惹的家伙。因为他实际上是图片,所以定了就是定了。