Dmi*_*try 12 css animation transform css-animations
我想使用这样的关键帧动画分别为两个(或更多)css变换属性设置动画:
@keyframes translatex {
100% {
transform: translateX(100px);
}
}
@keyframes rotatez {
100% {
transform: rotateZ(80deg);
}
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<div class="rect"></div>
Run Code Online (Sandbox Code Playgroud)
translatex动画应以0秒延迟开始,持续5秒.rotatez动画应以1秒延迟开始并持续3秒.因此,正确的元素开始移动,然后在1秒钟后开始旋转,然后在3秒后它停止旋转,再经过1秒后,它就完成了它的运动.
应用动画:
.rect {
animation-name: translatex, rotatez;
animation-duration: 5s, 3s;
animation-timing-function: ease, ease-in-out;
animation-delay: 0s, 1s;
animation-direction: forward, forward;
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是只应用了rotatez动画.我的问题是:有没有办法用css(关键帧动画,过渡)实现这样的动画,或者我需要JS和requestAnimationFrame?
编辑:: 我的FIDDLE
leM*_*ela 15
对的,这是可能的.而不是调用2个动画名称,只创建一个动画,其中包含两个动作
@keyframes translateXandZ {
100% {
transform: translateX(100px) rotateZ(80deg);
}
}
Run Code Online (Sandbox Code Playgroud)
看一下关于css动画的谷歌演示:google css animation,slide 12
如果你给我们一个小提琴,我可以在你的例子上更新我的答案.
编辑:这是一个解决方法,即使它是一个粗略的版本:$:小提琴
@-webkit-keyframes translateXandZ {
0% {-webkit-transform: translateX(0px) rotateZ(0deg);}
2% {-webkit-transform: translateX(1px) rotateZ(0deg);}
5% {-webkit-transform: translateX(3px) rotateZ(0deg);}
20% {-webkit-transform: translateX(20px) rotateZ(0deg);}
80% {-webkit-transform: translateX(80px) rotateZ(80deg);}
95% {-webkit-transform: translateX(97px) rotateZ(80deg);}
98% {-webkit-transform: translateX(99px) rotateZ(80deg);}
100% {-webkit-transform: translateX(100px) rotateZ(80deg);}
}
Run Code Online (Sandbox Code Playgroud)
现在你的动画是线性的,但为了让它像轻松进出,我只是玩动画的开头和结尾.仍然不完美,但这是我看到你如何得到你想要的唯一方式!
| 归档时间: |
|
| 查看次数: |
22309 次 |
| 最近记录: |