为什么要给div设置动画以使其向上移动,然后向右跳转一次?

时间:2018-08-23 21:42:27

标签: css css-animations keyframe

我正在学习动画,并尝试使div(其中带有input)向上移动然后向右移动。

向上过渡看起来很流畅。但是,向右过渡会“跳”起来,并以较高的点(相对于先前的状态)结束。

我在做什么错了?

代码:

.container {
  top: 30%;
  position: absolute;
  animation: move 5s 1;
}

input {
  width: 100px;
  height: 10px;
}

@keyframes move {
  0% {
    top: 30%;
  }
  50% {
    top: 10%;
  }
  100% {
    top: 10%;
    left: 20%;
  }
}
<div class="container">
  <input />
</div>

1 个答案:

答案 0 :(得分:1)

问题是您的left没有已知的起始位置,因此也没有起始动画的位置。请尝试以下操作:

.container {
  top: 30%;
  left: 0%;
  position: absolute;
  animation: move 5s 1;
}

input {
  width: 100px;
  height: 10px;
}

@keyframes move {
  0% {
    top: 30%;
    left: 0%;
  }
  50% {
    top: 10%;
    left: 0%;
  }
  100% {
    top: 10%;
    left: 20%;
  }
}
<div class="container">
  <input />
</div>