CSS动画框架Loaders.css +animate.css

时间:2023-03-10 03:48:59
CSS动画框架Loaders.css +animate.css

CSS加载动画框架Loaders.css

是一款非常出色的加载动画框架,Loaders.css利用纯CSS可以实现很多种样式的Loading加载动画,这些动画并不需要图片来辅助,而是仅仅需要CSS即可实现,因此运行效率比较不错。

CSS动画框架Loaders.css +animate.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">1s <span class="hljs-number">0s <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">1s <span class="hljs-number">0s <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">1s <span class="hljs-number">0s <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">1s <span class="hljs-number">0s <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">1s;
  <span class="hljs-attribute">animation-duration: <span class="hljs-number">1s; }</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(晃动效果)】

CSS动画框架Loaders.css +animate.css
bounce
flash
pulse
rubberBand
shake
headShake
swing
tada
wobble
jello
CSS动画框架Loaders.css +animate.css

  以在div上使用bounce为例

<div class="animated bounce"></div>

【bounce(弹性缓冲效果)】

CSS动画框架Loaders.css +animate.css
bounceIn
bounceInDown
bounceInLeft
bounceInRight
bounceInUp
bounceOut
bounceOutDown
bounceOutLeft
bounceOutRight
bounceOutUp
CSS动画框架Loaders.css +animate.css

【fade(透明度变化效果)】

CSS动画框架Loaders.css +animate.css
fadeIn
fadeInDown
fadeInDownBig
fadeInLeft
fadeInLeftBig
fadeInRight
fadeInRightBig
fadeInUp
fadeInUpBig
fadeOut
fadeOutDown
fadeOutDownBig
fadeOutLeft
fadeOutLeftBig
fadeOutRight
fadeOutRightBig
fadeOutUp
fadeOutUpBig
CSS动画框架Loaders.css +animate.css

【flip(翻转效果)】

flip
flipInX
flipInY
flipOutX
flipOutY

【rotate(旋转效果)】

CSS动画框架Loaders.css +animate.css
rotateIn
rotateInDownLeft
rotateInDownRight
rotateInUpLeft
rotateInUpRight
rotateOut
rotateOutDownLeft
rotateOutDownRight
rotateOutUpLeft
rotateOutUpRight
CSS动画框架Loaders.css +animate.css

【slide(滑动效果)】

CSS动画框架Loaders.css +animate.css
slideInDown
slideInLeft
slideInRight
slideInUp
slideOutDown
slideOutLeft
slideOutRight
slideOutUp
CSS动画框架Loaders.css +animate.css

【zoom(变焦效果)】

CSS动画框架Loaders.css +animate.css
zoomIn
zoomInDown
zoomInLeft
zoomInRight
zoomInUp
zoomOut
zoomOutDown
zoomOutLeft
zoomOutRight
zoomOutUp
CSS动画框架Loaders.css +animate.css

【special(特殊效果)】

hinge
rollIn
rollOut
lightSpeedIn
lightSpeedOut

实际应用

  在一般的使用中,直接在元素上添加animated和对应的类名即可

CSS动画框架Loaders.css +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}
</style>
</head>
<body>
<div class="box animated flash"></div>
</body>
</html>
CSS动画框架Loaders.css +animate.css
CSS动画框架Loaders.css +animate.css

  通过给JS添加或删除class,可以实现动态效果

CSS动画框架Loaders.css +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}
</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>
CSS动画框架Loaders.css +animate.css

  至于动画的配置参数,比如动画持续时间,动画的执行次数等等,可以在元素上自行定义,覆盖掉animate.css里面所定义的就行了

CSS动画框架Loaders.css +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>
CSS动画框架Loaders.css +animate.css