本篇文章小编给大家分享一下velocity.js实现页面滚动切换效果代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
浏览器支持
velocity.js支持IE8+、Chrome、Firefox等浏览器,并支持Andriod以及IOS。
我们开发一个工程,里面有一组相关联系的大型页面。不能做到在一张页面中把它们展现出来,同时又希望能够有效的阅读到这些相关内容,可以通过做一些有趣的效果来帮住我们实现,通过页面滚动切换效果,可以很有效的制作一个吸引人眼球的网页。
所有的特效应用都是通过velocity.js。Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的jQuery.animate()方法从而加快动画切换的速度。Velocity.js只有7k的大小,它不仅包含了jQuery.animate()的所有功能,并且还包含了颜色切换、转换(transform)、循环、缓动、CSS切换、Scroll功能,它是jQuery、 jQuery UI、CSS变换 在动画方面的最佳组合。Velocity.js在内部实现中使用了jQuery的jQuery.queue()方法,因此它比 jQuery的jQuery.animate()、jQuery.fade()、jQuery.delay()方法更加流畅,其性能也高于CSS的animation属性
所有的效果在小型终端都无法实现展示,例如手机和智能手表。所以最好在web上面来展示他的功能,但是对于小型终端我们也做了相应的适配,以便于浏览
要点
velocity.js是jQuery的动画插件,具有更快更高效的动画切换效果
2014年5月3日,julian在其GitHub上发布了velocity.js
velocity.js是一款小而强大的插件
-
下面我们来研究它的具体实现方法
为了应用动画和滚动效果,我们必须得在标签中进行data-hijacking和data-animation自定义的设置来实现这一功能
以上代码的意思是启动动画效果data-animation为按比例缩减scaleDown,data-animation一共定义了7种不同的动画效果,分别为scaleDown,rotate,fixed,gallery,parallax,opacity,catch.我们可以根据自己的需求,进行任意一种效果的应用。并且我将示例代码做了7个页面来分别呈现它的效果。设置数据拦截属性data-hijacking为关闭,你也可以设置为on,来展示它的效果。以上两个属性均来自velocity.js
html中Dom结构
在这个结构中我们想展示5个不同的一组页面,我们把他分为五个 section ,同时定义了2个用来进行切换作用的图标按钮
页面滚动切换效果1
页面滚动切换效果2
页面滚动切换效果3
页面滚动切换效果4
页面滚动切换效果5
css样式添加
通过对每个 section 进行样式的设计,方便我们查看和交互,大家可以根据需求在做一些相应样式。
.cd-section:first-of-type > div { background-color: #2b334f; } .cd-section:nth-of-type(2) > div { background-color: #2e5367; } .cd-section:nth-of-type(3) > div { background-color: #267481; } .cd-section:nth-of-type(4) > div { background-color: #fcb052; } .cd-section:nth-of-type(5) > div { background-color: #f06a59; }
js事件处理
当我们设定了数据拦截属性data-hijacking为关闭后,所有动画效果均按照它窗口的相对位置进行原比例缩放。当触发了动画事件之后,我们会对当前窗口页面的样式包括缩放比例由小到大,或者由大到小。以及相关透明度变化讲解。
下面详细展开对以下代码的讲解。首先windowHeight是指你设备窗口的本身高度是一个固定值,jQuery(window).scrollTop()是页面中滚动条的高度,是一个范围值从上往下滑动时(0~所有页面高度),从下往上滑动的时候是从(所有页面高度~0)。actualBlock.offset().top是一组固定值,代表每一个 section 页面到顶部的距离分别是(0,每张页面高度,每张页面高度*2,每张页面高度*3。。。)每张页面高度依据设备而定。弄明白了这些代码的意思过后,我们可以看到下面的判断语句当offset值大于负的窗口高度时,即从下往上滑动时,当前页面由大到小切换,并且透明度不改变,y轴的值不断的增加,页面逐渐退出当前视图窗口。当offset值小于窗口高度时,即从上往下滑动时,当前页面由小到大切换,并且透明度逐渐透明,y轴的值为零,进行缩放。阴影模糊半径改变。
//actualBlock is the section we are animation var offset = $(window).scrollTop() - actualBlock.offset().top, windowHeight = $(window).height(); if( offset >= -windowHeight && offset <= 0 ) { // section entering the viewport translateY = (-offset)*100/windowHeight; scale = 1; opacity = 1; } else if( offset > 0 && offset <= windowHeight ) { //section leaving the viewport scale = (1 - ( offset * 0.3/windowHeight)); opacity = ( 1 - ( offset/windowHeight) ); translateY = 0; boxShadowBlur = 40*(offset/windowHeight); }
以上事件处理之后,还有两个点击事件,点击那两个切换按钮,进行页面直接切换,同时还有velocity.js的事件处理函数例如对动画效果 translateUp,translateDown,scaleDown等做的一些效果。
$.Velocity .RegisterEffect("scaleDown", { defaultDuration: 800, calls: [ [ { opacity: '0', scale: '0.7', boxShadowBlur: '40px' }, 1] ] });
忍者必须死34399账号登录版 最新版v1.0.138v2.0.72
下载勇者秘境oppo版 安卓版v1.0.5
下载忍者必须死3一加版 最新版v1.0.138v2.0.72
下载绝世仙王官方正版 最新安卓版v1.0.49
下载Goat Simulator 3手机版 安卓版v1.0.8.2
Goat Simulator 3手机版是一个非常有趣的模拟游
Goat Simulator 3国际服 安卓版v1.0.8.2
Goat Simulator 3国际版是一个非常有趣的山羊模
烟花燃放模拟器中文版 2025最新版v1.0
烟花燃放模拟器是款仿真的烟花绽放模拟器类型单机小游戏,全方位
我的世界动漫世界 手机版v友y整合
我的世界动漫世界模组整合包是一款加入了动漫元素的素材整合包,
我的世界贝爷生存整合包 最新版v隔壁老王
我的世界MITE贝爷生存整合包是一款根据原版MC制作的魔改整