WebUI/插件库

多次滚动动画插件:ScrollReveal

2019-12-02  本文已影响0人  CodeMT

官网地址:https://scrollrevealjs.org/
GitHub:https://github.com/scrollreveal/scrollreveal

scrollReveal.jsWOW.js 一样,scrollReveal.js 也是一款页面滚动显示动画的JavaScript插件,能让页面更加有趣,更吸引用户眼球。不同的是WOW.js 的动画只播放一次,而 scrollReveal.js的动画可以播放一次或无限次;WOW.js 依赖animate.css,而 scrollReveal.js 不依赖其他任何文件。虽然 scrollReveal.js不依赖animate.css,但它的动画也是用 CSS3 创建的,所以它不支持 IE10以下的浏览器。

scrollReveal.js兼容性如下:

基本用法:

1、引入js文件

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

2、HTML

<div data-scroll-reveal>dowebok.com</div>

如果你想添加多个元素,可以如下:

<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属性

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();
上一篇 下一篇

猜你喜欢

热点阅读