如何在CSS中从右向左缩放?

时间:2017-01-28 16:35:21

标签: html css css3 css-animations

我试图动画缩放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);
  }
}

enter image description here

2 个答案:

答案 0 :(得分:5)

默认情况下,transform-origin50% 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;
&#13;
&#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>