首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有关键帧的简单线条动画

带有关键帧的简单线条动画
EN

Stack Overflow用户
提问于 2018-10-29 21:03:23
回答 3查看 443关注 0票数 1

我试着制作一个平滑的动画,但动画在中间有一种“剪切错误”。

我怎么才能修复它?

代码语言:javascript
复制
div,
div:after {
  width: 0vw;
  height: 3px;
  position: fixed;
  top: 1vw; bottom: 0;
  left: 40vw; right: 40vw;
  margin: auto;
/*  margin-top: -16px;*/

  z-index: 600;
  background-color: rgba(0, 0, 0, 1);
}

div {
  /*background-color: transparent;*/
/*  border-top: 3px solid rgba(0, 0, 0, 0.1);
  border-right: 3px solid rgba(0, 0, 0, 0.1);
  border-bottom: 3px solid rgba(0, 0, 0, 0.1);
  border-left: 3px solid black;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);*/
  -webkit-animation-iteration-count:infinite;
          animation-iteration-count:infinite;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-name: animsition-loading;
          animation-name: animsition-loading;
}

@-webkit-keyframes animsition-loading {
  0% {
    /*width: 0vw;*/
    transform:translate(0vw);
    width :0vw;
      margin-left: 0;
  }

  50% {
    /*width: 0vw;*/
    /*transform:translate(5vw);*/
    width :10vw;
    
  }

  100% {
    /*width: 0vw;*/
    transform:translate(1vw);
    width :0vw;
    margin-right: 0;
  }
}
代码语言:javascript
复制
<div> </div>

EN

回答 3

Stack Overflow用户

发布于 2018-10-29 21:16:35

下面是用更少的代码实现相同功能的另一种方法:

代码语言:javascript
复制
.loading {
  height: 3px;
  position: fixed;
  top: 2vw;
  left: 40vw;
  right: 40vw;
  height: 3px;
  background: linear-gradient(#000, #000) left/0% 100% no-repeat;
  animation: anime 2s ease-in-out infinite alternate;
}

@keyframes anime {
  0% {
    background-size: 0% 100%;
    background-position: left;
  }
  50% {
    background-size: 70% 100%;
  }
  100% {
    background-size: 0% 100%;
    background-position: right;
  }
}
代码语言:javascript
复制
<div class="loading"></div>

票数 1
EN

Stack Overflow用户

发布于 2018-10-29 21:18:29

尝试以这种方式设置动画:

代码语言:javascript
复制
@-webkit-keyframes animsition-loading {
  0% {

    width :0;
    left: 0;
  }

  50% {   
    width :10vw;

  }

  100% {    
    width :0;
    right: 0;
  }

这就是你想要的效果吗?

票数 0
EN

Stack Overflow用户

发布于 2018-10-29 21:37:32

试试这个,你就完成了..。不要使用transform translate,只使用宽度。

代码语言:javascript
复制
div,
div:after {
  width: 0vw;
  height: 3px;
  position: fixed;
  top: 1vw; bottom: 0;
  left: 40vw; right: 40vw;
  margin: auto;
/*  margin-top: -16px;*/

  z-index: 600;
  background-color: rgba(0, 0, 0, 1);
}

div {
  /*background-color: transparent;*/
/*  border-top: 3px solid rgba(0, 0, 0, 0.1);
  border-right: 3px solid rgba(0, 0, 0, 0.1);
  border-bottom: 3px solid rgba(0, 0, 0, 0.1);
  border-left: 3px solid black;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);*/
  -webkit-animation-iteration-count:infinite;
          animation-iteration-count:infinite;
  -webkit-animation-timing-function: ease-in-out;
          animation-timing-function: ease-in-out;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-name: animsition-loading;
          animation-name: animsition-loading;
}

@-webkit-keyframes animsition-loading {
  

0% {

    width :0;
    left: 0;
  }

  50% {   
    width :10vw;

  }

  100% {    
    width :0;
    right: 0;
  }
}
代码语言:javascript
复制
<div> </div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53046111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档