WoW.js插件

时间:2017.11.02----2017.11.04

author: gaoxuerong

先上效果图点击这里

这是我在看WoW.js源码的时候写的,自己也是不理解,所以是边看,边百度,把自己查的资料整理下,由于本人能力有限,不能很好的讲解,就只是粗略的写了下,

开始总体看起来是(function(){}).call(this)讲解详见https://segmentfault.com/q/1010000002519489

  1. 其实[].indexOf和
  1. function(item) {
  1.   for (var i = 0, l = this.length; i < l; i++) {
  1.     if (i in this && this[i] === item)
  1.       return i;
  1.   }return -1;
  1. };的作用是一样的;你懂得;
  1. Util = (function() {return Util;})()//立即执行函数
  1. function Util() {}
  1. Util.prototype.extend = function(custom, defaults) {
  1. var key, value;
  1. for (key in defaults) {
  1. value = defaults[key];
  1. if (custom[key] == null) {
  1. custom[key] = value;
  1. }
  1. }
  1. return custom;
  1. };
  1. WeakMap=this.WeakMap || this.MozWeakMap || (WeakMap = (function() {return WeakMap;})())
  1. function WeakMap() {
  1. this.keys = [];
  1. this.values = [];
  1. }
  1. 然后在WeakMap原型上扩展了get set方法;
  1. WeakMap.prototype.get(key)返回key关联对象, 或者 undefined(没有key关联对象时)。WeakMap.prototype.set(key, value)在WeakMap中设置一组key关联对象,返回这个 WeakMap对象。关于WeakMap详见http://es6.ruanyifeng.com/#docs/set-map
  1. MutationObserver =(MutationObserver = (function() {
  1. function MutationObserver() {}
  1. return MutationObserver;
  1. })());关于 MutationObserver
  1. https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver
  1. getComputedStyle = this.getComputedStyle || function(el, pseudo) {
  1. return this;
  1. }
  1. Window.getComputedStyle() 方法给出应用活动样式表后的元素的所有CSS属性的值,并解析这些值可能包含的任何基本计算。关于getComputedStyle详见https://developer.mozilla.org/zh-CN/docs/Web/API/Window/getComputedStyle
  1. http://www.zhangxinxu.com/wordpress/2012/05/getcomputedstyle-js-getpropertyvalue-currentstyle/
  1. this.WOW = (function() {
  1. return WOW;
  1. })()
  1. WOW.prototype.defaults = {
  1. boxClass: ‘wow‘,
  1. animateClass: ‘animated‘,
  1. offset: 0,
  1. mobile: true,//手机是否支持
  1. live: true,
  1. callback: null,
  1. scrollContainer: null
  1. };
  1. function WOW(options) {
  1. if (options == null) {
  1. options = {};
  1. }
  1. this.scrollCallback = bind(this.scrollCallback, this);
  1. this.scrollHandler = bind(this.scrollHandler, this);
  1. this.resetAnimation = bind(this.resetAnimation, this);
  1. this.start = bind(this.start, this);
  1. this.scrolled = true;
  1. this.config = this.util().extend(options, this.defaults);
  1. if (options.scrollContainer != null) {
  1. this.config.scrollContainer = document.querySelector(options.scrollContainer);
  1. }
  1. this.animationNameCache = new WeakMap();
  1. this.wowEvent = this.util().createEvent(this.config.boxClass);
  1. }
  1. 然后在Wow.prototype上扩展了方法init[初始化]; start ;stop ;sync[同步] ;doSync; show;applyStyle;animate;resetStyle;resetAnimation;customStyle;vendorSet;vendorCSS;animationName;cacheAnimationName;cachedAnimationName;scrollHandler;scrollCallback;offsetTop;isVisible;util;disabled;

WoW.js基本用法

详见:http://www.cnblogs.com/yangjunfei/p/6746926.html

具体动画效果,详见animate.css

具体css3动画效果详见:http://css.doyoe.com/

自己可以根据animate.css源码分析,只要了解css3动画的用法就好;

例如:1.   fadeInDown

在animate.css中有:

透明度从opacity:0到opacity:1;在外轴上平移:从-20px到0;

2.bounceInDown

3.rollIn

4.lightSpeedIn

5.bounceInRight 

6.flipInX

7.shake

8.swing

9.bounceInUp

10.pulse

11.bounce

12.flip

  1. @keyframes flip {
  1. 0% {
  1. -webkit-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
  1. -ms-transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
  1. transform: perspective(400px) translateZ(0) rotateY(0) scale(1);
  1. -webkit-animation-timing-function: ease-out;
  1. animation-timing-function: ease-out;
  1. }
  1. 40% {
  1. -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
  1. -ms-transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
  1. transform: perspective(400px) translateZ(150px) rotateY(170deg) scale(1);
  1. -webkit-animation-timing-function: ease-out;
  1. animation-timing-function: ease-out;
  1. }
  1. 50% {
  1. -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
  1. -ms-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
  1. transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
  1. -webkit-animation-timing-function: ease-in;
  1. animation-timing-function: ease-in;
  1. }
  1. 80% {
  1. -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);
  1. -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);
  1. transform: perspective(400px) translateZ(0) rotateY(360deg) scale(.95);
  1. -webkit-animation-timing-function: ease-in;
  1. animation-timing-function: ease-in;
  1. }
  1. 100% {
  1. -webkit-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
  1. -ms-transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
  1. transform: perspective(400px) translateZ(0) rotateY(360deg) scale(1);
  1. -webkit-animation-timing-function: ease-in;
  1. animation-timing-function: ease-in;
  1. }
  1. }

13.tada

  1. @keyframes tada {
  1. 0% {
  1. -webkit-transform: scale(1);
  1. -ms-transform: scale(1);
  1. transform: scale(1);
  1. }
  1. 10%, 20% {
  1. -webkit-transform: scale(0.9) rotate(-3deg);
  1. -ms-transform: scale(0.9) rotate(-3deg);
  1. transform: scale(0.9) rotate(-3deg);
  1. }
  1. 30%, 50%, 70%, 90% {
  1. -webkit-transform: scale(1.1) rotate(3deg);
  1. -ms-transform: scale(1.1) rotate(3deg);
  1. transform: scale(1.1) rotate(3deg);
  1. }
  1. 40%, 60%, 80% {
  1. -webkit-transform: scale(1.1) rotate(-3deg);
  1. -ms-transform: scale(1.1) rotate(-3deg);
  1. transform: scale(1.1) rotate(-3deg);
  1. }
  1. 100% {
  1. -webkit-transform: scale(1) rotate(0);
  1. -ms-transform: scale(1) rotate(0);
  1. transform: scale(1) rotate(0);
  1. }
  1. }
时间: 2024-10-13 20:48:46

WoW.js插件的相关文章

css3特效插件wow.js

在使用css3写特效的时候,会遇到比较麻烦的就是css3代码需要大量的调试,但是现在有了wow.js,让写特效变得简单了很多. wow.js官网 https://www.delac.io/wow/index.html 使用教程: 第一步:wow.js依赖于animate.css,首先需要在  head内引入animate.css或者animate.min.css. <link rel="stylesheet" href="css/animate.css">

关于wow.js个参数的详解

1.从哪里下载插件?animate.css 下载地址: http://daneden.github.io/animate.css/wow.min.js 下载地址: http://www.downyi.com/downinfo/37040.html#address 2.如何使用? <link rel="stylesheet" href="css/animate.css"> <script src="js/wow.min.js"&g

使用Animate.css和wow.js,实现各大网站常用的页面加载动画

经常见到某个网站的动画是在屏幕显示到This元素的时候,会有个过渡动画. 主要区别于在普通页面是在页面加载完成后所有动画一起动,或者设置延迟时间. 而这两个插件混搭使用可以是页面现在到该元素时才加载动画.拥有非常不错的效果. 算个比较常见的交互效果,研究了一下午,主要使用以下两个插件完成. 1.wow.js 实现了在网页滚动时的动画效果,有漂亮的动画效果,依赖于Animate.css. 2.Animate.css 非常优秀的CSS3动画库,不依赖于jQuery,纯CSS动画 用法: <link

wow.js中各种特效对应的类名

一.(页面在向下滚动的时候,有些元素会产生细小的动画效果.虽然动画比较小,但却能吸引你的注意.) 刚知道wow.js这个插件,之前访问别的网站下拉滚动条会出现各种效果感觉特别神奇,现在自己依葫芦画瓢也能弄出来这种效果了. 虽然效果出来了,但是网上并没有整理好的各种特效对应的类名,所以写一篇通俗易懂(最起码自己能看懂)的文章供大家参考学习.(^_^) 二.首先说明一下怎么使用这个插件: 1.wow.js依赖于animate.css,首先在头部引用animate.css或者animate.min.c

一些前端用的JS插件

整理一些常用的JS库,其中大多数是jQuery相关插件,也有Bootstrap辅助插件及非jQuery插件.其功能涉及:页面布局.图片幻灯片播放.图片像册展示.功能辅助等内容.本篇只是简单介绍插件功能,以后使用到相关插件时再补充介绍插件使用方法的文章. jQuery Easing:jQuery 动画效果扩展 jQuery Migrate:jQuery 应用迁移辅助插件 Modernizr:专为HTML5和CSS3开发的功能检测类库 jQuery Flexslider:响应式 jQuery 内容滚

WOW.js – 让页面滚动更有趣

官网:http://mynameismatthieu.com/WOW/ 建议去官网一看 下载地址:https://github.com/matthieua/WOW 浏览器兼容 IE10+  Chrome  Firefox  Opera  Safari  IE6.IE7 等老旧浏览器不支持 CSS3 动画,所以没有效果:而 wow.js 也使用了 querySelectorAll 方法,IE 低版本会报错.为了达到更好的兼容,最好加一个浏览器及版本判断. 1.wow.js依赖于animate.cs

ScrollReveal-元素随页面滚动产生动画的js插件

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

wow.js

wow.js中各种特效对应的类名一.(页面在向下滚动的时候,有些元素会产生细小的动画效果.虽然动画比较小,但却能吸引你的注意.) 刚知道wow.js这个插件,之前访问别的网站下拉滚动条会出现各种效果感觉特别神奇,现在自己依葫芦画瓢也能弄出来这种效果了. 虽然效果出来了,但是网上并没有整理好的各种特效对应的类名,所以写一篇通俗易懂(最起码自己能看懂)的文章供大家参考学习.(^_^)二.首先说明一下怎么使用这个插件: 1.wow.js依赖于animate.css,首先在头部引用animate.css

wow.js动画使用方法

不多说先看效果 WOW官网 是不是觉得很有趣,这样小小的一款插件就能做出这么多动画效果. 一些小小的细节效果能为网站增色不少,下面就让我们来学习如何使用这款插件. 使用教程 wow.js依赖于animate.css,首先需要在 head内引入animate.css或者animate.min.css. <link rel="stylesheet" href="css/animate.css"> 引入wow.js或者wow.min.js,然后js文件里再写一