CSS加载动画框架Loaders.css
是一款非常出色的加载动画框架,Loaders.css利用纯CSS可以实现很多种样式的Loading加载动画,这些动画并不需要图片来辅助,而是仅仅需要CSS即可实现,因此运行效率比较不错。
Loaders.css的特点
- 基于纯CSS,不需JavaScript脚本,也不需要图片,很干净。
- 默认提供近30个不同的Loading动画效果,你也可以发挥自己的想象来实现不同的加载动画。
- Loaders.css比较轻巧,基本没什么臃肿的文件。
- 免费、开源,这是必须的。
下面是第一行第4个Loading动画的CSS代码,其他的大家可以在源代码中查看。
<span class=
"hljs-selector-class"
>.ball-clip-rotate-pulse {
<span class=
"hljs-attribute"
>
position
:
relative
;
<span class=
"hljs-attribute"
>-webkit-transform: <span class=
"hljs-built_in"
>translateY(
-15px
);
<span class=
"hljs-attribute"
>-ms-transform: <span class=
"hljs-built_in"
>translateY(
-15px
);
<span class=
"hljs-attribute"
>transform: <span class=
"hljs-built_in"
>translateY(
-15px
); }
<span class=
"hljs-comment"
>
/* line 262, stdin */
<span class=
"hljs-selector-class"
>.ball-clip-rotate-pulse > <span class=
"hljs-selector-tag"
>div {
<span class=
"hljs-attribute"
>-webkit-animation-fill-mode:
both
;
<span class=
"hljs-attribute"
>animation-fill-mode:
both
;
<span class=
"hljs-attribute"
>
position
:
absolute
;
<span class=
"hljs-attribute"
>
top
: <span class=
"hljs-number"
>
0px
;
<span class=
"hljs-attribute"
>
left
: <span class=
"hljs-number"
>
0px
;
<span class=
"hljs-attribute"
>border-radius: <span class=
"hljs-number"
>
100%
; }
<span class=
"hljs-comment"
>
/* line 269, stdin */
<span class=
"hljs-selector-class"
>.ball-clip-rotate-pulse > <span class=
"hljs-selector-tag"
>div<span class=
"hljs-selector-pseudo"
>:first-child {
<span class=
"hljs-attribute"
>
background
: <span class=
"hljs-number"
>
#fff
;
<span class=
"hljs-attribute"
>
height
: <span class=
"hljs-number"
>
16px
;
<span class=
"hljs-attribute"
>
width
: <span class=
"hljs-number"
>
16px
;
<span class=
"hljs-attribute"
>
top
: <span class=
"hljs-number"
>
9px
;
<span class=
"hljs-attribute"
>
left
: <span class=
"hljs-number"
>
9px
;
<span class=
"hljs-attribute"
>-webkit-animation: scale <span class=
"hljs-number"
>
1
s <span class=
"hljs-number"
>
0
s <span class=
"hljs-built_in"
>cubic-bezier(
0.09
,
0.57
,
0.49
,
0.9
) infinite;
<span class=
"hljs-attribute"
>animation: scale <span class=
"hljs-number"
>
1
s <span class=
"hljs-number"
>
0
s <span class=
"hljs-built_in"
>cubic-bezier(
0.09
,
0.57
,
0.49
,
0.9
) infinite; }
<span class=
"hljs-comment"
>
/* line 277, stdin */
<span class=
"hljs-selector-class"
>.ball-clip-rotate-pulse > <span class=
"hljs-selector-tag"
>div<span class=
"hljs-selector-pseudo"
>:last-child {
<span class=
"hljs-attribute"
>
position
:
absolute
;
<span class=
"hljs-attribute"
>
border
: <span class=
"hljs-number"
>
2px
solid
<span class=
"hljs-number"
>
#fff
;
<span class=
"hljs-attribute"
>
width
: <span class=
"hljs-number"
>
30px
;
<span class=
"hljs-attribute"
>
height
: <span class=
"hljs-number"
>
30px
;
<span class=
"hljs-attribute"
>
background
:
transparent
;
<span class=
"hljs-attribute"
>
border
: <span class=
"hljs-number"
>
2px
solid
;
<span class=
"hljs-attribute"
>
border-color
: <span class=
"hljs-number"
>
#fff
transparent
<span class=
"hljs-number"
>
#fff
transparent
;
<span class=
"hljs-attribute"
>-webkit-animation: rotate <span class=
"hljs-number"
>
1
s <span class=
"hljs-number"
>
0
s <span class=
"hljs-built_in"
>cubic-bezier(
0.09
,
0.57
,
0.49
,
0.9
) infinite;
<span class=
"hljs-attribute"
>animation: rotate <span class=
"hljs-number"
>
1
s <span class=
"hljs-number"
>
0
s <span class=
"hljs-built_in"
>cubic-bezier(
0.09
,
0.57
,
0.49
,
0.9
) infinite;
<span class=
"hljs-attribute"
>-webkit-animation-duration: <span class=
"hljs-number"
>
1
s;
<span class=
"hljs-attribute"
>animation-duration: <span class=
"hljs-number"
>
1
s; }</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
|
在线演示地址:http://static.codeceo.com/demo/201505/loaders.css/index.html
GitHub地址:https://github.com/ConnorAtherton/loaders.css
软件首页:https://connoratherton.com/loaders
animate.css
animate.css是一个使用CSS3的animation制作的动画效果的CSS集合,里面预设了很多种常用的动画,且使用非常简单。本文将详细介绍animate.css的使用
引入
animate.css的最新版本是3.5.2,引入animate.css很容易,有以下几种方法
1、从官网下载
https://raw.github.com/daneden/animate.css/master/animate.css
2、通过npm安装
$ npm install animate.css
3、使用在线cdn
https://unpkg.com/animate.css@3.5.2/animate.min.css
效果演示
animate.css的使用非常简单,因为它是把不同的动画绑定到了不同的类里,所以想要使用哪种动画,只需要把通用类animated和相应的类添加到元素上就行了
下面来详细介绍animate.css里面的类,主要包括Attention(晃动效果)、bounce(弹性缓冲效果)、fade(透明度变化效果)、flip(翻转效果)、rotate(旋转效果)、slide(滑动效果)、zoom(变焦效果)、special(特殊效果)这8类
【Attention(晃动效果)】
bounce flash pulse rubberBand shake headShake swing tada wobble jello
以在div上使用bounce为例
<div class="animated bounce"></div>
【bounce(弹性缓冲效果)】
bounceIn bounceInDown bounceInLeft bounceInRight bounceInUp bounceOut bounceOutDown bounceOutLeft bounceOutRight bounceOutUp
【fade(透明度变化效果)】
fadeIn fadeInDown fadeInDownBig fadeInLeft fadeInLeftBig fadeInRight fadeInRightBig fadeInUp fadeInUpBig fadeOut fadeOutDown fadeOutDownBig fadeOutLeft fadeOutLeftBig fadeOutRight fadeOutRightBig fadeOutUp fadeOutUpBig
【flip(翻转效果)】
flip flipInX flipInY flipOutX flipOutY
【rotate(旋转效果)】
rotateIn rotateInDownLeft rotateInDownRight rotateInUpLeft rotateInUpRight rotateOut rotateOutDownLeft rotateOutDownRight rotateOutUpLeft rotateOutUpRight
【slide(滑动效果)】
slideInDown slideInLeft slideInRight slideInUp slideOutDown slideOutLeft slideOutRight slideOutUp
【zoom(变焦效果)】
zoomIn zoomInDown zoomInLeft zoomInRight zoomInUp zoomOut zoomOutDown zoomOutLeft zoomOutRight zoomOutUp
【special(特殊效果)】
hinge rollIn rollOut lightSpeedIn lightSpeedOut
实际应用
在一般的使用中,直接在元素上添加animated和对应的类名即可
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://unpkg.com/animate.css@3.5.2/animate.min.css"> <style> .box{height: 100px;width: 100px;background-color: lightblue} </style> </head> <body> <div class="box animated flash"></div> </body> </html>

通过给JS添加或删除class,可以实现动态效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://unpkg.com/animate.css@3.5.2/animate.min.css"> <style> .box{height: 100px;width: 100px;background-color: lightblue} </style> </head> <body> <button id="btn1">添加</button> <button id="btn2">移除</button> <div id="box" class="box"></div> <script> var oBtn1 = document.getElementById('btn1'); var oBtn2 = document.getElementById('btn2'); var oBox = document.getElementById('box'); oBtn1.onclick = function(){ oBox.classList.add('animated'); oBox.classList.add('flash'); } oBtn2.onclick = function(){ oBox.classList.remove('flash'); } </script> </body> </html>
至于动画的配置参数,比如动画持续时间,动画的执行次数等等,可以在元素上自行定义,覆盖掉animate.css里面所定义的就行了
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://unpkg.com/animate.css@3.5.2/animate.min.css"> <style> .box{height: 100px;width: 100px;background-color: lightblue} .infinite{animation-iteration-count:infinite;} </style> </head> <body> <button id="btn1">添加循环的动画效果</button> <button id="btn2">移除</button> <div id="box" class="box"></div> <script> var oBtn1 = document.getElementById('btn1'); var oBtn2 = document.getElementById('btn2'); var oBox = document.getElementById('box'); oBtn1.onclick = function(){ oBox.classList.add('animated'); oBox.classList.add('flash'); oBox.classList.add('infinite'); } oBtn2.onclick = function(){ oBox.classList.remove('flash'); } </script> </body> </html>