CSS3的出現給網站頁面增加了活力,網站增色不少,有這麼小小的一款插件就能做出很多動畫效果。 最重要的是它:簡單易用、輕量級、無需 jQuery......他就是wow.js 地址:https://daneden.github.io/animate.css/ 也可以在這個地方看各種演示 下麵就讓我們 ...
CSS3的出現給網站頁面增加了活力,網站增色不少,有這麼小小的一款插件就能做出很多動畫效果。
最重要的是它:簡單易用、輕量級、無需 jQuery......他就是wow.js
地址:https://daneden.github.io/animate.css/ 也可以在這個地方看各種演示
下麵就讓我們來學習如何使用這款插件。
使用教程
1、wow.js依賴於animate.css,首先需要在 head
內引入animate.css或者animate.min.css。
<link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.min.css" rel="stylesheet">
2、引入wow.js或者wow.min.js,然後js文件里再寫一行代碼。
<script src="https://cdn.bootcss.com/wow/1.1.2/wow.min.js"></script>
3、然後在塊狀元素內添加相應的class類名就能實現相應的動畫啦
<div class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s" data-wow-offset="10" data-wow-iteration="10"></div>4、需要註意的是別忘了初始化設置參數
<script> wow = new WOW( { boxClass: 'wow', // 預設屬性名 animateClass: 'animated', // 預設觸發的動畫類(包含在animate css中) offset: 0, // 為所有添加wow的元素設置 data-wow-delay屬性 的預設值 mobile: true, // 是否在移動設備中開啟動畫 live: true // 持續監測頁面中是否插入新的wow元素 } ); wow.init(); </script>
wow
是必須要添加的slideInLeft
說明瞭動畫的樣式,是從左邊滑動出來的data-wow-duration
(動畫持續時間)、data-wow-delay
(動畫延遲時間)、data-wow-offset
(元素的位置露出後距離底部多少像素執行)和data-wow-iteration
(動畫執行次數)這四個屬性可選可不選。
下表依次是各種class類名的動畫效果
wow rollIn | 從左到右、順時針滾動、透明度從100%變化至設定值 |
wow bounceIn | 從原位置出現,由小變大超出設定值,再變小小於設定值,再回歸設定值、透明度從100%變化至設定值 |
wow bounceInUp | 從下往上、竄上來以後會向上超出一部分然後彈回去、透明度為設定值不變 |
wow bounceInDown | 從上往下、掉下來以後會向下超出一部分然後彈跳一下、透明度為設定值不變 |
wow bounceInLeft | 從左往右、移過來以後會向右超出一部分然後往左彈一下、透明度為設定值不變 |
wow bounceInRight | 從右往左、移過來以後會向左超出一部分然後往右彈一下、透明度為設定值不變 |
wow slideInUp | 從下往上、上來後固定到設定位置、透明度為設定值不變(up是從下往上)(如果元素在最下麵,會撐開盒子高度) |
wow slideInDown | 從上往下、上來後固定到設定位置、透明度為設定值不變 |
wow slideInLeft | 從左往右、上來後固定到設定位置、透明度為設定值不變(left卻是從左往右) |
wow slideInRight | 從右往左、上來後固定到設定位置、透明度為設定值不變 |
wow lightSpeedIn | 從右往左、頭部先向右傾斜,又向左傾斜,最後變為原來的形狀、透明度從100%變化至設定值 |
wow pulse | 原位置放大一點點在縮小至原本大小、透明度為設定值不變(配合動畫執行次數屬性效果更佳) |
wow flipInX | 原位置後仰前栽、透明度從100%變化至設定值 |
wow flipInY | 原位置左右旋動、透明度從100%變化至設定值 |
wow bounce | 上下抖動、透明度為設定值不變(配合動畫執行次數和動畫持續時間屬性可以實現劇烈抖動亦或是慢慢抖) |
wow shake | 左右抖動、透明度為設定值不變(配合動畫執行次數和動畫持續時間屬性可以實現劇烈抖動亦或是慢慢抖) |
wow swing | 從右往左、頭部先向右傾斜,又向左傾斜,最後變為原來的形狀、透明度為設定值不變 |
wow bounceInU | 原位置不變、直接從不顯示到顯示(無過過渡效果) |
wow wobble | 原位置不變、類似於一個人站在那左右晃頭、透明度為設定值不變 |
最後來看一個完整的測試案例吧
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <title>WOW.js演示</title> <link rel="stylesheet" href="https://cdn.bootcss.com/animate.css/3.5.2/animate.min.css"> <style> * { margin: 0; padding: 0;} body { overflow-x: hidden; font-family: "Microsoft Yahei";} body h1 { width: 100%; margin: 80px 0; font-size: 50px; font-weight: 500; text-align: center;} body .txt { margin: 80px 0; font-size: 16px; text-align: center;} .dowebok { margin: 0 auto;} .dowebok ul { list-style-type: none;} .dowebok .row { font-size: 0; text-align: center;} .dowebok .wow { display: inline-block; width: 280px; height: 280px; margin: 30px 15px 0; border-radius: 50%; font: 30px/280px "Microsoft Yahei"; vertical-align: top; *display: inline; zoom: 1;} .bg-green { background: #5bd5a0;} .bg-blue { background: #1daee9;} .bg-purple { background: #c843a5;} .bg-red { background: #eb3980;} .bg-yellow { background: #ffcc35;} .vad { margin: 50px 0 5px; padding-bottom: 60px; font-family: Consolas,arial,宋體; text-align:center; display:none} .vad a { display: inline-block; height: 36px; line-height: 36px; margin: 0 5px; padding: 0 50px; font-size: 14px; text-align:center; color:#eee; text-decoration: none; background-color: #222;} .vad a:hover { color: #fff; background-color: #000;} </style> </head> <body> <h1>WOW.js - 讓頁面滾動更有趣</h1> <p class="txt">WOW.js 能讓頁面滾動時顯示動畫,使頁面更有趣。</p> <div class="dowebok"> <div class="row"> <div class="wow rollIn bg-blue"></div> <div class="wow bounceInDown bg-green">WOW.js</div> <div class="wow lightSpeedIn bg-purple"></div> </div> <div class="row"> <div class="wow rollIn bg-yellow" data-wow-delay="0.5s">簡單易用</div> <div class="wow pulse bg-red" data-wow-iteration="5" data-wow-duration="0.15s"></div> <div class="wow bounceInRight bg-blue">輕量級</div> </div> <div class="row"> <div class="wow bounceInLeft bg-green"></div> <div class="wow flipInX bg-purple">WOW.js</div> <div class="wow bounceInRight bg-yellow"></div> </div> <div class="row"> <div class="wow rollIn bg-blue">無需 jQuery</div> <div class="wow shake bg-red" data-wow-iteration="5" data-wow-duration="0.15s"></div> <div class="wow swing bg-purple" data-wow-iteration="2">純 JS</div> </div> <div class="row"> <div class="wow rollIn bg-red"></div> <div class="wow bounceInU bg-yellow" data-wow-delay="0.5s">WOW.js</div> <div class="wow lightSpeedIn bg-green" data-wow-delay="0.5s" data-wow-duration="0.15s"></div> </div> <div class="row"> <div class="wow bounceInLeft bg-purple">依賴 animate.css</div> <div class="wow pulse bg-blue" data-wow-iteration="5" data-wow-duration="0.25s"></div> <div class="wow lightSpeedIn bg-yellow">多種動畫</div> </div> <div class="row"> <div class="wow bounce bg-green" data-wow-iteration="5" data-wow-duration="0.15s"></div> <div class="wow bounceInUp bg-red">WOW.js</div> <div class="wow bounceInRight bg-purple"></div> </div> <div class="row"> <div class="wow rollIn bg-red" data-wow-delay="0.5s">無需 jQuery!?</div> <div class="wow bounceInDown bg-green" data-wow-delay="1s"></div> <div class="wow bounceInRight bg-yellow" data-wow-delay="1.5s">謝謝</div> </div> </div> <script src="https://cdn.bootcss.com/wow/1.1.2/wow.js"></script> <script> <script> wow = new WOW( { boxClass: 'wow', // 預設屬性名 animateClass: 'animated', // 預設觸發的動畫類(包含在animate css中) offset: 0, // 為所有添加wow的元素設置 data-wow-delay屬性 的預設值 mobile: true, // 是否在移動設備中開啟動畫 live: true // 持續監測頁面中是否插入新的wow元素 } ); wow.init(); </script> </script> </body> </html>
是不是很簡單,頁面初始化後隨著滾動條載入模塊,看起來和懶載入效果一樣,高大上的感覺有木有?
溫馨提示:IE6、IE7 等老舊瀏覽器不支持 CSS3 動畫,所以沒有效果;而 wow.js 也使用了 querySelectorAll 方法,IE 低版本會報錯。為了達到更好的相容,最好加一個瀏覽器及版本判斷。