我为某个div设置了一个动画。
.Animation
{
-webkit-animation-fill-mode: both; /*and also -moz, -ms etc. */
animation-fill-mode: both;
-webkit-animation-delay: 1s;
animation-delay: 1s;
-webkit-animation-duration: 2s;
animation-duration: 2s;
}
@-webkit-keyframes scaleAnimation /*and also -moz, -ms etc. */
{
0%
{
opacity: 0;
-webkit-transform: scale(2);
}
100%
{
opacity: 1;
-webkit-transform: scale(1);
}
}
.ScaleAnimation
{
-webkit-animation-name: scaleAnimation; /*and also -moz, -ms etc. */
animation-name: scaleAnimation;
}
但我想要一个不同的自定义缓动(立方贝塞尔)用于不透明度和另一个自定义的变换。我该如何让它发挥作用。
以下没有成功:
transition: opacity 1s ease-in-out;
transition: scale 1s ease-in-out;
所以它肯定不会使用自定义缓解,立方贝塞尔(0.555,-0.130,0.270,1.075);例如。
有什么想法? :)
答案 0 :(得分:2)
对于过渡,您可以通过逗号分隔这些过渡来指定多个过渡。
transition: <duration> <property> <delay> <timing-function>, ....
transition: 1s opacity 1s ease-in-out, 1s scale 1s linear;
如果你想去动画/关键帧路线,那么你可以创建两个动画关键帧。一个用于比例,另一个用于不透明度。然后用逗号分隔它们在元素的动画设置中。
缓和的属性为animation-timing-function
。对于基于webkit的浏览器(从您的问题看来,您不介意供应商前缀),它变为-webkit-animation-timing-function
。
您可以将其设置为此代码段:
div {
width: 120px; height: 120px;
background-color: red;
display: inline-block;
}
div.d1 {
-webkit-animation-fill-mode: both;
-webkit-animation-delay: 2s, 2s;
-webkit-animation-duration: 2s, 2s;
-webkit-animation-name: scaleAnimation, opacityAnimation;
-webkit-animation-timing-function:
cubic-bezier(0.1, 0.7, 1.0, 0.1), ease-in;
}
div.d2 {
-webkit-animation-fill-mode: both;
-webkit-animation-delay: 2s, 2s;
-webkit-animation-duration: 2s, 2s;
-webkit-animation-name: scaleAnimation, opacityAnimation;
-webkit-animation-timing-function: linear linear;
}
@-webkit-keyframes scaleAnimation {
0% {
-webkit-transform: scale(2);
}
100% {
-webkit-transform: scale(1);
}
}
@-webkit-keyframes opacityAnimation {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
&#13;
<div class="d1">D1</div>
<div class="d2">D2</div>
&#13;
小提琴:http://jsfiddle.net/abhitalks/3y7pcd1t/1/