CSS3动画@keyframes中translate和scale混用出错问题
2015-02-04 12:43
459 查看
在写基于网页的2048时,想让一个元素出现时已经通过translate属性固定在指定位置,同时显示动画scale(0)-->scale(1),以实现放大出现效果。
CSS代码为
结论:同时使用translate和scale时,应将scale放前面。
只测试了webkit内核的,其他内核未测试,不知道算不算一个BUG。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.success {
width: 50px;
height: 50px;
background-color: #BBF7F7;
-webkit-animation: mymove_success 1s;
-webkit-animation-fill-mode: forwards;
}
.failed {
width: 50px;
height: 50px;
background-color: #FF6F6F;
-webkit-animation: mymove_failed 1s;
-webkit-animation-fill-mode: forwards;
}
@-webkit-keyframes mymove_failed
{
0% {-webkit-transform:translate(50px,50px) scale(0);}
100% {-webkit-transform:translate(50px,50px) scale(1);}
}
@-webkit-keyframes mymove_success
{
0% {-webkit-transform:scale(0) translate(50px,50px);}
100% {-webkit-transform:scale(1) translate(50px,50px);}
}
</style>
</head>
<body>
<div class="success"></div>
<div class="failed"></div>
</body>
</html>
CSS代码为
@-webkit-keyframes mymove_failed { 0% {-webkit-transform:translate(50px,50px) scale(0);} 100% {-webkit-transform:translate(50px,50px) scale(1);} }但是效果却和预想的不一样,研究后发现,将translate和scale的顺序反过来写,即可实现预期的效果,如下:
@-webkit-keyframes mymove_success { 0% {-webkit-transform:scale(0) translate(50px,50px);} 100% {-webkit-transform:scale(1) translate(50px,50px);} }
结论:同时使用translate和scale时,应将scale放前面。
只测试了webkit内核的,其他内核未测试,不知道算不算一个BUG。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.success {
width: 50px;
height: 50px;
background-color: #BBF7F7;
-webkit-animation: mymove_success 1s;
-webkit-animation-fill-mode: forwards;
}
.failed {
width: 50px;
height: 50px;
background-color: #FF6F6F;
-webkit-animation: mymove_failed 1s;
-webkit-animation-fill-mode: forwards;
}
@-webkit-keyframes mymove_failed
{
0% {-webkit-transform:translate(50px,50px) scale(0);}
100% {-webkit-transform:translate(50px,50px) scale(1);}
}
@-webkit-keyframes mymove_success
{
0% {-webkit-transform:scale(0) translate(50px,50px);}
100% {-webkit-transform:scale(1) translate(50px,50px);}
}
</style>
</head>
<body>
<div class="success"></div>
<div class="failed"></div>
</body>
</html>
相关文章推荐
- css3常用动画大全:translate、scale、opacity、rotate
- Android动画效果translate、scale、alpha、rotate详解
- Android动画效果translate、scale、alpha、rotate
- android动画Scale+Translate
- Android动画效果translate、scale、alpha、rotate
- Android动画效果translate、scale、alpha、rotate的 xml文件写法
- Android动画效果translate、scale、alpha、rotate
- Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整
- Android动画效果translate、scale、alpha、rotate
- webkit-box & translate CSS3动画详解
- css3动画和jquery动画使用中要注意的问题
- 如何解决Windows 7开机动画出错的问题
- Android动画效果translate、scale、alpha、rotate
- Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整
- Android动画效果translate、scale、alpha、rotate详解
- Android动画效果translate、scale、alpha、rotate
- [转]Android动画效果translate、scale、alpha、rotate
- Android AlphaAnimation\TranslateAnimation 多组动画循环+单个动画结束后闪烁问题
- Android动画效果 translate、scale、alpha、rotate
- Android动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整