标签:
今天介绍一个Javascript的小型的动画插件velocity.js,可以方便高效的开发一个具有多页面滚动切换效果的网站。
velocity.js支持IE8+、Chrome、Firefox等浏览器,并支持Andriod以及IOS。
我们开发一个工程,里面有一组相关联系的大型页面。不能做到在一张页面中把它们展现出来,同时又希望能够有效的阅读到这些相关内容,可以通过做一些有趣的效果来帮住我们实现,通过页面滚动切换效果,可以很有效的制作一个吸引人眼球的网页。
所有的特效应用都是通过velocity.js。Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的$.animate()方法从而加快动画切换的速度。Velocity.js只有7k的大小,它不仅包含了$.animate()的所有功能,并且还包含了颜色切换、转换(transform)、循环、缓动、CSS切换、Scroll功能,它是jQuery、 jQuery UI、CSS变换 在动画方面的最佳组合。Velocity.js在内部实现中使用了jQuery的$.queue()方法,因此它比 jQuery的$.animate()、$.fade()、$.delay()方法更加流畅,其性能也高于CSS的animation属性
所有的效果在小型终端都无法实现展示,例如手机和智能手表。所以最好在web上面来展示他的功能,但是对于小型终端我们也做了相应的适配,以便于浏览
下面我们来研究它的具体实现方法
以上代码的意思是启动动画效果data-animation为按比例缩减scaleDown,data-animation一共定义了7种不同的动画效果,分别为scaleDown,rotate,fixed,gallery,parallax,opacity,catch.我们可以根据自己的需求,进行任意一种效果的应用。并且我将示例代码做了7个页面来分别呈现它的效果。设置数据拦截属性data-hijacking为关闭,你也可以设置为on,来展示它的效果。以上两个属性均来自velocity.js
在这个结构中我们想展示5个不同的一组页面,我们把他分为五个<section>,同时定义了2个用来进行切换作用的图标按钮
通过对每个<section>进行样式的设计,方便我们查看和交互,大家可以根据需求在做一些相应样式。
当我们设定了数据拦截属性data-hijacking为关闭后,所有动画效果均按照它窗口的相对位置进行原比例缩放。当触发了动画事件之后,我们会对当前窗口页面的样式包括缩放比例由小到大,或者由大到小。以及相关透明度变化讲解。
下面详细展开对以下代码的讲解。首先windowHeight是指你设备窗口的本身高度是一个固定值,$(window).scrollTop()是页面中滚动条的高度,是一个范围值从上往下滑动时(0~所有页面高度),从下往上滑动的时候是从(所有页面高度~0)。actualBlock.offset().top是一组固定值,代表每一个<section>页面到顶部的距离分别是(0,每张页面高度,每张页面高度*2,每张页面高度*3。。。)每张页面高度依据设备而定。弄明白了这些代码的意思过后,我们可以看到下面的判断语句当offset值大于负的窗口高度时,即从下往上滑动时,当前页面由大到小切换,并且透明度不改变,y轴的值不断的增加,页面逐渐退出当前视图窗口。当offset值小于窗口高度时,即从上往下滑动时,当前页面由小到大切换,并且透明度逐渐透明,y轴的值为零,进行缩放。阴影模糊半径改变。
以上事件处理之后,还有两个点击事件,点击那两个切换按钮,进行页面直接切换,同时还有velocity.js的事件处理函数例如对动画效果 translateUp,translateDown,scaleDown等做的一些效果。
这是一个相对来说比较复杂的效果,需要大量的js事件处理和插件函数调用,大家学习起来肯定相对比较复杂。建议先整理清楚逻辑思路之后,在看文章,并且依据文章要点去阅读源代码。如果大家对velocity.js插件感兴趣,可以去了解它的其他效果作用。并且欢迎大家和我一起互动,有什么不懂的地方欢迎小伙伴们留言哦~~
标签:
原文地址:http://www.cnblogs.com/gbtags/p/4642753.html