用 CSS3 动画功能,做一个有逼格的加载动画
主要用到的知识点:
参阅菜鸟教程: http://www.runoob.com/css3/cs...
- frame
- animation / 动画延时
- flex
实现
HTML
<div class="loading"> <div class="loading-1 loading-item"></div> <div class="loading-2 loading-item"></div> <div class="loading-3 loading-item"></div> <div class="loading-4 loading-item"></div> </div>
说明: loading-1/2/3/4
用于区别四个不同点,loading-item
里放通用样式
CSS 重点
如果了解 less,看这个更清晰些,如果不懂,看下面生成的 css
LESS
@red: #FF3B30; @orange: #FF9500; @black: #373737; @green: #4CD964; @load-box-height: 50px; .loading{ height: @load-box-height; // 定死容器的高度,不然会上下浮动 margin: 20px 0; display: flex; align-items: center; // 横向排列子元素 justify-content: center; // 纵向排列子元素 .loading-item{ height: @load-box-height; width: 10px; margin-right: 10px; &:last-child{ // 去掉最后一个的右边距 margin-right: 0; } } &-1{ // 【参数分别为】 动画key名,一次动画的持续时间,循环方式,过滤规则,动画起始延时时间 -webkit-animation: load-frame 1s infinite linear 0s; -o-animation: load-frame 1s infinite linear 0s; animation: load-frame 1s infinite linear 0s; background-color: @red; } &-2{ -webkit-animation: load-frame 1s infinite linear 0.25s; // 通过控制延时,只用一个keyframe 就能做出渐变效果 -o-animation: load-frame 1s infinite linear 0.25s; animation: load-frame 1s infinite linear 0.25s; background-color: @orange; } &-3{ -webkit-animation: load-frame 1s infinite linear 0.5s; -o-animation: load-frame 1s infinite linear 0.5s; animation: load-frame 1s infinite linear 0.5s; background-color: @black; } &-4{ -webkit-animation: load-frame 1s infinite linear 0.75s; -o-animation: load-frame 1s infinite linear 0.75s; animation: load-frame 1s infinite linear 0.75s; background-color: @green; } } @keyframes load-frame { 0% {height: @load-box-height;} 50% {height: @load-box-height * 0.25;} // 设置动画中间的高度,此时为最低,为原高度的25% 100% {height: @load-box-height;} } @-webkit-keyframes load-frame { // safari & chrome 0% {height: @load-box-height;} 50% {height: @load-box-height * 0.25;} 100% {height: @load-box-height;} }
CSS
.loading { height: 50px; margin: 20px 0; display: flex; align-items: center; justify-content: center; } .loading .loading-item { height: 50px; width: 10px; margin-right: 10px; } .loading .loading-item:last-child { margin-right: 0; } .loading-1 { -webkit-animation: load-frame 1s infinite linear 0s; -o-animation: load-frame 1s infinite linear 0s; animation: load-frame 1s infinite linear 0s; background-color: #FF3B30; } .loading-2 { -webkit-animation: load-frame 1s infinite linear 0.25s; -o-animation: load-frame 1s infinite linear 0.25s; animation: load-frame 1s infinite linear 0.25s; background-color: #FF9500; } .loading-3 { -webkit-animation: load-frame 1s infinite linear 0.5s; -o-animation: load-frame 1s infinite linear 0.5s; animation: load-frame 1s infinite linear 0.5s; background-color: #373737; } .loading-4 { -webkit-animation: load-frame 1s infinite linear 0.75s; -o-animation: load-frame 1s infinite linear 0.75s; animation: load-frame 1s infinite linear 0.75s; background-color: #4CD964; } @keyframes load-frame { 0% {height: 50px;} 50% {height: 12.5px;} 100% {height: 50px;} } @-webkit-keyframes load-frame { 0% {height: 50px;} 50% {height: 12.5px;} 100% {height: 50px;} }
最后,WA-LA,完成
相关推荐
冰蝶 2020-04-20
vavid 2020-04-20
aSuncat 2020-03-01
csdnuuu 2020-02-14
CaiKanXP 2020-01-12
lanzhusiyu 2020-01-05
zengni 2019-12-25
waterv 2019-12-10
sorryericsson 2014-01-16
我就是停不下来 2014-01-16
somboy 2019-11-06
jiedinghui 2019-10-28
沈宫新 2020-06-11
ShylaDong 2020-02-25
wangjie 2020-02-12
wangqing 2019-12-28