1. 程式人生 > >強大而酷炫的CSS3動畫庫Animate.css使用方法

強大而酷炫的CSS3動畫庫Animate.css使用方法

今天介紹一個強大的CSS3庫
Animate.css
庫如其名 ,是一個動畫庫
通過它我們非常輕鬆地新增動畫效果
“Just-add-water CSS animations”
像灌水一樣簡單
我們只需要新增幾個類名
下載地址及動畫效果戳這裡:Animate.css
使用這個庫只需要把animate.css引入我們的檔案即可

<link rel="stylesheet" href="styles/animate.css">

靜態使用

靜態使用也就是最基本的使用方法
直接給元素加class類名
以彈跳bounce動畫效果為例

<h1 class
="animated bounce">
Animate</h1>

animated是必須要新增的類名
只有添加了它,Animate.css庫才認為我們是要使用它的動畫效果

/*原始碼*/
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

看了原始碼我們也可以DIY動畫時間等等

類名中bounce就是動畫效果的類名

這樣設定的樣式預設是動一次
如果你想讓這個動畫無限迴圈下去
那就新增一個inifinite

<h1 class="animated bounce infinite">Animate</h1>
/*原始碼*/
.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

這種靜態的使用方法優點不用說
不用js,新增類名,輕鬆實現動畫
缺點同樣明顯
我們並不能很好的控制它
若不考慮無限迴圈動畫
只有網頁剛剛載入完畢後元素才動一次
應用的場景大概僅僅是
開場吸引使用者注意的動畫或者loading載入動畫

為了能夠更好的利用它
我們還是要配合js來使用

動態使用

動態使用無非就是想讓元素運動就新增類名
元素運動完就移除類名(需要監聽動畫結束事件)
這裡我擴充套件jQuery給大家演示一下
通過點選一個按鈕來使文字“彈跳”

<h1 id="demo">Animate</h1>
<button id="btn">click</button>
$.fn.extend({
    animateCss: function (animationName) {
        var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
        $(this).addClass('animated ' + animationName).one(animationEnd, function() {
            $(this).removeClass('animated ' + animationName);
        });
    }
});
$('#btn').on('click',function(){
    $('#demo').animateCss('bounce');
});

每次點選按鈕都會有一個動畫效果

也可以用原生js簡單實現

var btn = document.getElementById('btn');
var demo = document.getElementById('demo');
btn.onclick = function(){
    demo.addEventListener('animationend', function(){
        this.className = '';
        this.removeEventListener('animationend', false);
    }, false);
    demo.className = 'animated bounce';    
}

大家還可以擴充套件函式,控制動畫的次數、時間等等
這樣便實現了我們對於動畫的控制

最後補充一點
行級元素(span標籤、a標籤等等)是不能夠使用這個Animate.css動畫效果的
換句話說,行級元素新增庫的類名是無效的

這個動畫庫確實很厲害
看它的原始碼就會發現
很多keyframes細節都處理的非常好
可不是簡單的晃兩下
作者 Daniel Eden 不愧是大神
把這個強大又酷炫的CSS3動畫庫
推薦給大家