官網加動畫特效,哇哦,下面我介紹一下WOW.js
-
官網地址:https://www.delac.io/wow/ 點擊github可以找到wow.js和wow.min.js 以及animate.css者animate.min.css
-
wow.js依賴於animate.css,首先在頭部引用animate.css或者animate.min.css。
-
在body底部引入wow.js 且初始化一下:
<script src="js/wow.min.js"></script>
<script>
new WOW().init();
</script>
-
-
如果需要自定義配置,可如下使用:
var wow = new WOW({ boxClass: ‘wow‘, animateClass: ‘animated‘, offset: 0, mobile: true, live: true }); wow.init();
配置
屬性/方法 類型 默認值 說明 boxClass 字符串 ‘wow’ 需要執行動畫的元素的 class animateClass 字符串 ‘animated’ animation.css 動畫的 class offset 整數 0 距離可視區域多少開始執行動畫 mobile 布爾值 true 是否在移動設備上執行動畫 live 布爾值 true 異步加載的內容是否有效 注意new WOW().init();中的WOW要大寫,否則就沒效果了。
1、在css下方js上方寫需要動畫的元素(必須設置為塊狀或者行內塊狀!必須設置為塊狀或者行內塊狀!必須設置為塊狀或者行內塊狀!),並添加class類名。
<div class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s" data-wow-offset="10" data-wow-iteration="10"></div>
類名前面的wow是每一個帶動畫的元素都要加的,slideInLeft就是說明動畫樣式。后面的data-wow-duration(動畫持續時間)、data-wow-delay(動畫延遲時間)、data-wow-offset(元素的位置露出后距離底部多少像素執行)和data-wow-iteration(動畫執行次數)這四個屬性可選可不選。
<div class="wow bounce " data-wow-delay="1.5s" data-wow-iteration:"1"></div>
data-wow-duration:更改動畫持續時間
data-wow-delay:動畫開始前的延遲
data-wow-offset:開始動畫的距離(與瀏覽器底部相關)
data-wow-iteration:動畫的次數重復(無限次:infinite)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 原位置不變、類似於一個人站在那左右晃頭、透明度為設定值不變 2、其中data-wow-offset="數值"中的數值是動畫完成后元素距離顯示器底部的位置,而不是距離瀏覽器窗口底部的位置。
有的網站采用全屏滾動的fullpage插件與wow相結合的方法,實現的效果比較酷炫。我們完全可以仿寫。
但是使用fullpage.js下wow.js無效失效沒動作
問題出在fullpage隱藏了滾動條,將滾動條開啟即可,把scrollBar設置為true,代碼如下
$(‘#fullpage‘).fullpage({
scrollBar:true;
});
最后利用css將滾動條隱藏,將html添加overflowhidden,代碼如下
html{overflow:hidden;
}
-
-
自己寫的html代碼如下:
-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>使用wow做的項目</title> <link rel="stylesheet" href="css/animate.css"> <style> .container{ width:800px; margin:0 auto; } .container ul{ display:flex; display:-webkit-flex; justify-content: space-between; flex-wrap: wrap; } .container ul li{ width:300px; height:300px; margin-bottom:40px; list-style:none; border-radius:50%; text-align:center; vertical-align:middle; align-items: center; line-height:300px; background-color:pink; } .container ul li:nth-child(4n){ background-color:#409EFF; } .container ul li:nth-child(4n+1){ background-color:#67C23A; } .container ul li:nth-child(4n+2){ background-color:#E6A23C; } </style> </head> <body> <section class="container"> <ul> <li class="wow bounceInLeft">啊啊啊</li> <li class="wow bounceInRight"></li> <li class="wow bounceIn"></li> <li class="wow bounceInUp"></li> <li class="wow bounceInDown"></li> <li class="wow slideInUp"></li> <li class="wow slideInDown"></li> <li class="wow slideInLeft"></li> <li class="wow slideInRight"></li> <li class="wow lightSpeedIn"></li> <li class="wow pulse"></li> <li class="wow flipInX">哦哦哦</li> <li class="wow flipInY"></li> <li class="wow bounce"></li> <li class="wow shake"></li> <li class="wow wobble"></li> <li class="wow rollIn"></li> <li class="wow fadeInUpBig" data-wow-delay="0.3s"></li> <li class="wow fadeInUpBig" data-wow-delay="0.6s">呃呃呃</li> <li class="wow fadeInUpBig" data-wow-delay="0.9s"></li> <li class="wow fadeInUpBig" data-wow-delay="1.2s"></li> <li class="wow fadeInUpBig" data-wow-delay="1.5s"></li> </ul> </section> <script src="js/wow.min.js"></script> <script> new WOW().init(); </script> </body> </html>