在一些网页上,当你滚动页面的时候会看到各式各样的元素动画效果,非常动感。WOW.js 就是一款帮助你实现这种 CSS 动画效果的插件,很容易定制,你可以改变动画设置喜欢的风格、延迟、长度、偏移和迭代等。
使用方法:
1、引入文件
<link rel="stylesheet" href="css/animate.min.css">
2、HTML
<div class="wow slideInLeft"></div> <div class="wow slideInRight"></div>
可以加入 data-wow-duration(动画持续时间)和 data-wow-delay(动画延迟时间)属性,如:
<div class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s"></div> <div class="wow slideInRight" data-wow-offset="10" data-wow-iteration="10"></div>
3、JavaScript
new WOW().init();
如果需要自定义配置,可如下使用:
var wow = new WOW({ boxClass: 'wow', animateClass: 'animated', offset: 0, mobile: true, live: true }); wow.init();
配置
属性/方法 | 类型 | 默认值 | 说明 |
boxClass | 字符串 | ‘wow’ | ‘wow’需要执行动画的元素的 class |
animateClass | 字符串 | ‘animated’ | ‘animated’animation.css 动画的 class |
offset | 整数 | 0 | 距离可视区域多少开始执行动画 |
mobile | 布尔值 | true | 是否在移动设备上执行动画 |
live | 布尔值 | true | 异步加载的内容是否有效 |
scrollReveal.js – 页面滚动显示动画JS
和 WOW.js 一样,scrollReveal.js
也是一款页面滚动显示动画的 JavaScript,能让页面更加有趣,更吸引用户眼球。不同的是 WOW.js 的动画只播放一次,而 scrollReveal.js 的动画可以播放一次或无限次;WOW.js 依赖 animate.css,而
scrollReveal.js 不依赖其他任何文件。
基本方法IE6、IE7 等老旧浏览器不支持 CSS3 动画,所以没有效果,并且因为不支持一些属性或方法会报错。为了达到更好的兼容,最好加一个浏览器及版本判断。
<script src="js/scrollReveal.js"></script> <div data-scroll-reveal>scrollReveal.js – 页面滚动显示动画JS</div>
必须给元素加上 data-scroll-reveal 属性,加上之后会执行默认的动画效果,你也可以自定义改属性以显示不同的动画效果,如:
<div data-scroll-reveal="enter left and move 50px over 1.33s">scrollReveal.js – 页面滚动显示动画JS</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>
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
说明: 动画延迟时间值: 数字,以秒为单位reset
说明:动画是否重新加载
值:布尔。true/false
填充(可选)
可以在 data-scroll-reveal 属性里填充(添加)一些类似编程的“语句”,使其更有可读性,scrollReveal.js 支持以下“语句”:
fromtheandthenbutwith
也就是可以像这样写 HTML:
<div data-scroll-reveal="wait 0.3s then enter left and move 40px over 2s">scrollReveal.js – 页面滚动显示动画JS</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: true ,//重新加载
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>scrollReveal.js – 页面滚动显示动画JS</div>'};
var container = document.getElementById('#container');
container.innerHTML(data.newElementHTML);
scrollReveal.init();