簡介
和 WOW.js 一樣,scrollReveal.js 也是一款頁面滾動顯示動畫的 JavaScript,能讓頁面更加有趣,更吸引用戶眼球。不同的是 WOW.js 的動畫只播放一次,而 scrollReveal.js 的動畫可以播放一次或無限次;WOW.js 依賴 animate.css,而 scrollReveal.js 不依賴其他任何文件。
雖然 scrollReveal.js 不依賴 animate.css,但它的動畫也是用 CSS3 創建的,所以它不支持 IE10 以下的瀏覽器。
瀏覽器兼容
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
IE10+ ✔ | Chrome ✔ | Firefox ✔ | Opera ✔ | Safari ✔ |
IE6、IE7 等老舊瀏覽器不支持 CSS3 動畫,所以沒有效果,並且因為不支持一些屬性或方法會報錯。為了達到更好的兼容,最好加一個瀏覽器及版本判斷。
基本方法
1、引入文件
<script src="js/scrollReveal.js"></script>
2、HTML
<div data-scroll-reveal>dowebok.com</div>
必須給元素加上 data-scroll-reveal 屬性,加上之后會執行默認的動畫效果,你也可以自定義改屬性以顯示不同的動畫效果,如:
<div data-scroll-reveal="enter left and move 50px over 1.33s">dowebok.com</div> <div data-scroll-reveal="enter from the bottom after 1s">Hello world!</div> <div data-scroll-reveal="wait 2.5s and then ease-in-out 100px">iPhone 6</div>
3、JavaScript
window.scrollReveal = new scrollReveal(); //或者,elem 為動畫元素的任何級別的父元素 window.scrollReveal2 = new scrollReveal({elem: document.getElementById('srcontainer')});
data-scroll-reveal屬性
上面說了可以自定義 data-scroll-reveal 屬性,下面來看看該屬性的關鍵詞和值(可選)。
enter
- 說明: 動畫起始方向
- 值: top | right | bottom | left
move
- 說明: 動畫執行距離
- 值: 數字,以 px 為單位
over
- 說明: 動畫持續時間
- 值: 數字,以秒為單位
after/wait
- 說明: 動畫延遲時間
- 值: 數字,以秒為單位
填充(可選)
可以在 data-scroll-reveal 屬性里填充(添加)一些類似編程的“語句”,使其更有可讀性,scrollReveal.js 支持以下“語句”:
- from
- the
- and
- then
- but
- with
- ,
也就是可以像這樣寫 HTML:
<div data-scroll-reveal="wait 0.3s, then enter left and move 40px over 2s">dowebok.com</div> <div data-scroll-reveal="enter from the left after 0.3s, move 40px, over 2s">Hello world!</div> <div data-scroll-reveal="enter left move 40px over 2s after 0.3s">iPhone 6</div> <div data-scroll-reveal="enter left, move 40px, over 2s, wait 0.3s">I love you</div>
高級用法
自定義默認值
可以更改 scrollReveal.js 的默認配置,如:
var config = { after: '0s', enter: 'bottom', move: '24px', over: '0.66s', easing: 'ease-in-out', viewportFactor: 0.33, reset: false, init: true }; window.scrollReveal = new scrollReveal(config);
動態HTML
scrollReveal.init() 方法可以檢測所有含有 data-scroll-reveal 屬性的元素,並進行初始化,所以對於動態加載的元素,可以這樣操作:
var config = { enter: 'bottom', move: '40px', over: '0.16s', reset: true, init: false }; window.scrollReveal = new scrollReveal(config); var data = {newElementHtml: '<div data-scroll-reveal>dowebok.com</div>'}; var container = document.getElementById('#container'); container.innerHTML(data.newElementHTML); scrollReveal.init();
來自 http://www.dowebok.com/134.html