首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS弹跳线加载动画

CSS弹跳线加载动画
EN

Stack Overflow用户
提问于 2015-06-22 13:47:06
回答 2查看 8.9K关注 0票数 5

我试图创建一个简单的加载程序动画,画一条线来回,但目前只向一个方向移动。一旦它到达动画的中间,它就不会在负片方向上动画。

这是我的css

代码语言:javascript
复制
@keyframes loader-animation {
     0% {
          width: 0%;
     }

     49% {
         width: 100%;
     }

     50% {
         left: 100%;
     }

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

 .loader {
     height: 5px;
     width: 100%;
 }

 .loader .bar {
     position: relative;
     height: 5px;
     background-color: dodgerblue;
     animation-name: loader-animation;
     animation-duration: 3s;
     animation-iteration-count: infinite;
     animation-timing-function: ease-in-out;
 } 

和我的html

代码语言:javascript
复制
<div class="loader">
    <div class="bar"></div>
</div>

和一个带有代码的小提琴

有人能告诉我我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-22 13:51:00

这是因为您在49%50%之间有一个很大的间隔。

代码语言:javascript
复制
 49% {
     width: 100%;
 }

 50% {
     left: 100%;
 }

left添加到49%中,并调整widthleft等的一些属性,会给您带来令人敬畏的脉动效果:

代码语言:javascript
复制
@keyframes loader-animation {
    0% {
        width: 0%;
    }
    49% {
        width: 100%;
        left: 0%
    }
    50% {
        left: 100%;
    }
    100% {
        left: 0%;
        width: 100%
    }
}

片段

代码语言:javascript
复制
body {margin: 0; padding: 0;}
@keyframes loader-animation {
  0% {
    width: 0%;
  }
  49% {
    width: 100%;
    left: 0%
  }
  50% {
    left: 100%;
    width: 0;
  }
  100% {
    left: 0%;
    width: 100%
  }
}
.loader {
  height: 5px;
  width: 100%;
}
.loader .bar {
  position: absolute;
  height: 5px;
  background-color: dodgerblue;
  animation-name: loader-animation;
  animation-duration: 3s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}
代码语言:javascript
复制
<div class="loader">
  <div class="bar"></div>
</div>

Fiddle: http://jsfiddle.net/praveenscience/06w7zwwm/

如果你需要一个脉动效应,你需要使用两个极端:

代码语言:javascript
复制
@keyframes loader-animation {
    0% {
        left: -100%;
    }
    49% {
        left: 100%;
    }
    50% {
        left: 100%;
    }
    100% {
        left: -100%;
    }
}

片段

代码语言:javascript
复制
body {margin: 0; padding: 0; overflow: hidden;}
@keyframes loader-animation {
  0% {
    left: -100%;
  }
  49% {
    left: 100%;
  }
  50% {
    left: 100%;
  }
  100% {
    left: -100%;
  }
}
.loader {
  height: 5px;
  width: 100%;
}
.loader .bar {
  width: 100%;
  position: absolute;
  height: 5px;
  background-color: dodgerblue;
  animation-name: loader-animation;
  animation-duration: 3s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}
代码语言:javascript
复制
<div class="loader">
  <div class="bar"></div>
</div>

票数 15
EN

Stack Overflow用户

发布于 2015-06-22 13:56:03

我稍微修改了你的代码,让它正常工作。以下是我的改变:

代码语言:javascript
复制
 @keyframes loader-animation {
     0% {
         left: -100%;
     }
     49% {
         left: 100%;
     }
     50% {
         left: 100%;
     }
     100% {
         left: -100%;
     }
 }

overflow: hidden;添加到.loader

width: 100%;添加到.loader .bar

http://jsfiddle.net/wbyzy9jL/5/

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

https://stackoverflow.com/questions/30981631

复制
相关文章

相似问题

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