我试图动画缩放div元素。但动画从中心开始并传播。有没有一种动画从右边开始并向左边传播?
.graybox {
float: right;
background-color: gray;
height: 100px;
width: 400px;
line-height: 100px;
-webkit-animation: main 250ms;
-moz-animation: main 250ms;
-ms-animation: main 250ms;
animation: main 250ms;
}
@-moz-keyframes main {
0% {
-moz-transform: scaleX(0);
}
100% {
-moz-transform: scaleX(1);
}
}
答案 0 :(得分:5)
默认情况下,transform-origin
为50% 50%
,您可以将其重置为100% 50%
,第一个值100%
为x-offset,第二个值为50%
是y-offset。
要使宽度和高度的div都缩放,只需将scaleX
更改为scale
。
您还需要设置正确的@keyframes
语法,-moz
前缀仅适用于Firefox等Mozilla浏览器。我建议使用autoprefixer添加常用前缀。
.graybox {
float: right;
background-color: gray;
width: 100%;
height: 100px;
line-height: 100px;
animation: main 3s;
transform-origin: 100% 50%;
}
@keyframes main {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
}
}

<div class="graybox"></div>
&#13;
答案 1 :(得分:2)
使用transform-origin
.graybox {
float: right;
background-color: gray;
height: 100px;
width: 400px;
line-height: 100px;
transform-origin: 100% 50%;
animation: main .5s;
}
@keyframes main {
0% {
transform: scaleX(0);
}
100% {
transform: scaleX(1);
}
}
<div class="graybox"></div>