为使元素由大到小或由小到大的变化,通常使用css3 的 scale缩放属性。
如,将一元素先放大倍数然后缩小,最后正常大小显示,css代码如下:
@-webkit-keyframes change{
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(2);
-webkit-transform: translate(-50%, -50%) scale(2);
}
70% {
opacity: 1;
transform: translate(-50%, -50%) scale(0.8);
-webkit-transform: translate(-50%, -50%) scale(0.8);
}
100% {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
-webkit-transform: translate(-50%, -50%) scale(1);
}
}
@-moz-keyframes change{
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(2);
-webkit-transform: translate(-50%, -50%) scale(2);
}
70% {
opacity: 1;
transform: translate(-50%, -50%) scale(0.8);
-webkit-transform: translate(-50%, -50%) scale(0.8);
}
100% {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
-webkit-transform: translate(-50%, -50%) scale(1);
}
}
其中,开始时opacity为0,开始变化时,如果该元素在父容器里显示不完全,火狐下动画效果依然能正常表现,但webkit内核下的浏览器会有bug
表现为,运动过程中只看到该元素显示在父容器的部分,等动画结束后才显示全部。
解决办法为,开始时候让该元素的内容全部显示就OK了。