【用法】
在做項目中,有時需要做到滾動條滑到某個位置時,才能顯示動畫,wow.js插件可以很好的解決問題
下面說明一下怎么使用這個插件:
1、wow.js依賴於animate.css,首先在頭部引用animate.css或者animate.min.css
- <link rel="stylesheet" href="css/animate.css">
- <script type="text/javascript" src="js/wow.min.js"></script>
- <script type="text/javascript">
- new WOW().init();
- </script>
3、在css下方js上方寫需要動畫的元素(必須設置為塊狀或者行內塊狀),並添加class類名
在需要動畫的標簽上添加.wow 和 你的動畫元素即可
- <div class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s" data-wow-offset="10"
- data-wow-iteration="10"></div>
后面的data-wow-duration(動畫持續時間)、data-wow-delay(動畫延遲時間)、data-wow-offset(元素的位置露出后距離底部多少像素執行)和data-wow-iteration(動畫執行次數)這四個屬性可選可不選
注意:其中data-wow-offset="數值"中的數值是動畫完成后元素距離顯示器底部的位置,而不是距離瀏覽器窗口底部的位置。
【下面依次測試各種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 | 原位置不變、類似於一個人站在那左右晃頭、透明度為設定值不變 |
【效果】
配合data-wow-duration(動畫持續時間)、data-wow-delay(動畫延遲時間)、data-wow-offset(元素的位置露出后距離底部多少像素執行)和data-wow-iteration(動畫執行次數)這四個屬性可以完成很多效果,主要還是多實踐
【兼容】
IE6、IE7 等老舊瀏覽器不支持 CSS3 動畫,所以沒有效果;而 wow.js 也使用了 querySelectorAll 方法,IE 低版本會報錯。為了達到更好的兼容,最好加一個瀏覽器及版本判斷
js配置部分,如需自定義配置,可進行以下配置:
<script>
var wow = new WOW({
boxClass: 'wow',
animateClass: 'animated',
offset: 0,
mobile: true,
live: true
});
wow.init();
</script>
參數:
不在ie6-9中使用:
<script>
if (!(/msie [6|7|8|9]/i.test(navigator.userAgent))){
new WOW().init();
};
</script>