1. 程式人生 > >非常漂亮的JS外掛--------scrollReveal.js – 頁面滾動顯示動畫JS(轉)

非常漂亮的JS外掛--------scrollReveal.js – 頁面滾動顯示動畫JS(轉)

scrollReveal.js – 頁面滾動顯示動畫JS

簡介

和 WOW.js 一樣,scrollReveal.js 也是一款頁面滾動顯示動畫的 JavaScript,能讓頁面更加有趣,更吸引使用者眼球。不同的是 WOW.js 的動畫只播放一次,而 scrollReveal.js 的動畫可以播放一次或無限次;WOW.js 依賴 animate.css,而 scrollReveal.js 不依賴其他任何檔案。

雖然 scrollReveal.js 不依賴 animate.css,但它的動畫也是用 CSS3 建立的,所以它不支援 IE10 以下的瀏覽器。

瀏覽器相容

IE Chrome Firefox Opera Safari
IE10+ ✔ Chrome ✔ Firefox ✔ Opera ✔ Safari ✔

IE6、IE7 等老舊瀏覽器不支援 CSS3 動畫,所以沒有效果,並且因為不支援一些屬性或方法會報錯。為了達到更好的相容,最好加一個瀏覽器及版本判斷。

基本方法

1、引入檔案

1

<script src="js/scrollReveal.js"></script

>

2、HTML

1

<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

1

2

3

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:

1

2

3

4

<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();

原文摘自:https://www.cnblogs.com/panmy/p/5191772.html