Velocity.js
一个实现动画的js插件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>velocity.js</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/velocity.min.js"></script>
<script type="text/javascript" src="js/velocity.ui.min.js"></script>
<style type="text/css">
.box{
width: 300px;
height: 200px;
display: block;
background-color: red;
}
#div1{opacity: 0}
#div2{
position: absolute;
opacity: 1;
background-color: green;
}
#div3{
opacity: 1;
}
</style>
(function($){
$('#div1').velocity({
width:'300px'
},{
duration:1000,
complete:function(){
$('#div2').velocity({
width:'300px'
},
{
duration:1000
});
}});
/*var seq = [
{
elements:$('#div1'),
properties:{width:'300px'},
options:{duration:1000}
},
{
elements:$('#div2'),
properties:{width:'300px'},
options:{duration:1000}
},
{
elements:$('#div3'),
properties:{width:'300px'},
options:{duration:1000}
}]
$.Velocity.RunSequence(seq);
*/
$('#div1').on('mouseover', function() {
$(this).velocity('callout.shake');
});
$.Velocity.RegisterEffect('Lixin.pulse',{//RegisterUI和RegisterEffect一样
defaultDuration:300,
calls:[
[{scaleX:1.1},0.5],//前50%将x变为原来的1.5倍
[{scaleX:1.0},0.5]//后50%
]
});
$('#div2').on('mouseover', function() {
$(this).velocity('Lixin.pulse');
});
})(jQuery);
FullPage.js
fullPage.js是一个基于jQuery的插件,它能够很方便、很轻松的制作出全屏网站,主要功能有:
+ 支持鼠标滚动
+ 多个回调函数
+ 支持手机、平板触摸事件
+ 支持CSS3动画
+ 支持窗口缩放
+ 窗口缩放时自动调整
+ 可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等
如何获得fullPage呢?
可以在gitHub上获得
特点:
+ 轻巧
+ 兼容性好
+ 无商业限制
使用cdnjs网站引用fullPage.js
配置项
- sectionsColor:可以为每一个section设置background-color属性
- controlArrows:定义是否通过箭头来控制slide幻灯片,默认为true。当我们设置为false,则幻灯片左右两侧的箭头就会消失,在移动设备上,我们可以通过滑动来切换幻灯片。
- verticalCentered:每一页的内容是否垂直居中,默认为true。一般我们保持默认值。
- resize: 字体是否随着窗口缩放而缩放,默认为false;
- scrollSpeed:滑动速度默认为700ms
- anchors:定义锚链接,默认值为[]。有了锚链接,用户可以快速打开定义的链接,注意锚链接定义不要重复。并且定义时不需要#,好处是可以是实现收藏。
- lockAnchors:是否锁定锚链接,默认值为false。如果设置为true,那么定义的锚链接,也就是anchors属性则没有效果。这个配置项使用的比较少。
- easing:定义页面section滚动的动画方式,默认为easeInOutCubic,如果修改此项,需要引入jQuery.easings.js或者jquery ui.
- css3:是否使用css3 transforms 来实现滚动效果,默认为true。这个配置项可以提高支持css3的浏览器,比如移动设备等的速度,如果浏览器不支持css3,则会使用jquery来代替css3实现滚动效果。
- loopTop:滚动到最顶部后是否连续滚动到底部,默认为false。
- loopBottom:滚动到最底部是否连续滚动回顶部,默认值为false。
- loopHorizontal:横向slider幻灯片是否循环滚动,默认值true。
- autoScrolling:是否使用插件的滚动方式,默认为true,如果选择false,则会出现浏览器自带的滚动条,将不会按页滚动,而是按照滚动条的默认行为来滚动。
- scrollBar:是否包含滚动条,默认为false,如果设置为true,则浏览器自带的滚动条出现,页面滚动时还是按页滚动,但是滚动条的默认行为也有效。
- paddingTop/paddingBottom:设置每一个section顶部和底部的padding,默认都为0,一般如果我们需要设置一个固定在顶部或者底部的菜单、导航、元素等,可以使用这两个配置项。
- fixedElements:固定的元素,默认为null,需要配置一个jQuery选择器,在页面股东的时候,fixedElements设置的元素固定不动。
- keyboardScrolling:是否可以使用键盘方向键导航,默认值为true
- touchSensitivity:在移动设备中滑动页面的敏感度,默认为5,是按百分比来衡量,最高为100,越大越难滚动。
- continuousVertical:是否循环滚动,默认值为false。如果设置为true,则页面会循环滚动,而不像loopTop或loopBottom那样出现跳动,注意这个属性和loopTop、loopBottom不兼容,不要同时设置。
- animateAnchor:锚链接是否可以控制滚动动画,默认为true。如果设置为false,则通过锚链接定位到某个页面显示不再有动画效果。
- recordHistory:是否记录历史,默认为true,可以记录页面滚动的历史,通过浏览器的前进后退来导航。注意如果设置了autoScrolling:false,那么这个配置也将被关闭,即设置为false。
- menu:绑定菜单,设定的相关属性与anchors的值对应后,菜单可以控制滚动,默认为false。可以设置为才菜单的jquery选择器。
- navigation:是否显示导航,默认为false。如果设置为true,会显示小圆点,作为导航。
- navigationPosition:导航小圆点的位置,可以设置为left或者right。
- navigationTooltips:导航小圆点的tooltips设置,默认为[],注意按照顺序设置。
- showActiveTooltip:是否显示当前页面的导航的tooltip信息,默认为false
- slidesNavigation:是否显示横向幻灯片的导航,默认为false。
- slidesNavPosition:横向幻灯片导航的位置,默认为bottom,可以设置为top或bottom
- scrollOverflow:内容超过满屏后是否显示滚动条,默认为false。如果设置为true,则会显示滚动条,如果要滚动查看内容,还需要jquery.slimscroll插件的配合。slimscroll插件主要用于模拟传统的浏览器滚动条。
- sectionSelector:sectoin的选择器,。默认为.section.
- slideSelector:slide的选择器,默认为.slide。
方法 $.fn.fullpage.xxx()
- moveSectionUp():向上滚动一页。
- moveSectionDown():向下滚动一页。
- moveTo(section,slide):滚动到第几页,第几个幻灯片,注意,页面是从1开始,而幻灯片,是从0开始。
- silentMoveTo(section,slide):滚动到第几页,和moveTo一样,但是没有动画效果。
- moveSlideRight():幻灯片向右滚动。
- moveSlideLeft():幻灯片向左滚动。
- setAutoScrolling(boolean):动态设置autoScrolling
- setLockAnchors(boolean):动态设置lockAnchors
- setRecordHistory(boolean):动态设置recordHistory
- setScrollingSpeed(milliseconds):动态设置scrollingSpeed
- setAllowScrolling(boolean,[directions]);添加或删除鼠标滚轮/滑动控制,第一个参数true为启用,false为禁用,后面的参数为方向,取值包含all,up,down,left,right,可以使用多个,用逗号分隔。
- destroy(type):销毁fullpage特效,type可以不写,或者使用all,不写type,fullPage给页面添加的样式和html元素还在,如果使用all,则样式,HTML等全部销毁,页面恢复和不使用fullPage相同的效果
- reBuild()重新更新页面和尺寸,用于通过ajax请求后改变了页面结构之后,重建效果。
回调
- afterLoad(anchorLink,index):滚动到某一section,且滚动结束后,会触发一次回调函数,函数接收anchorLink和index两个参数,anchorLink是锚链接的名称,index是序号,从1开始计算。我们可以根据anchorLink和index参数值的判断,触发相应的事件。
- onLeave(index,nextIndex,direction):在我们离开一个section时,会触发一次此回调函数,接收index、nextIndex和direction 3个参数:
- index是离开的“页面”的序号,从1开始计算;
- nextIndex是滚动到的目标“页面”的序号,从1开始计算;
- direction判断往上滚动还是往下滚动,值是up或down.
通过return false;可以取消滚动
+ afterRender()页面结构生成后的回调函数,或者说页面初始化完成后的回调函数
+ afterResize()浏览器窗口尺寸改变后的回调函数
+ afterSlideLoad(anchorLink,index,slideAnchor,slideIndex)滚动到某一幻灯片后的回调函数,与afterLoad类似,接收anchorLink,index,slideIndex,direction 4个参数。
+ onSlideLeave(anchorLink,index,slideIndex,direction,nextSlideIndex)在我们离开一个slide时,会触发一次此回调函数,与onLeave类似,接收anchorLink,index,slideIndex,direction 4个参数。
Move.js
.box{
-webkit-transition:margin 1s;
-moz-transition:margin 1s;
-o-transition:margin 1s;
transition:margin 1s;
}
.box:hover{
margin-left:100px;
}
move('.box').set('margin-left':100)
.end();
- set()方法用于设置元素的CSS属性,他带有俩个参数:CSS属性和属性值。
- scale()方法用于放大或压缩元素的大小,按照提供的每一个值,将调用transform的scale方法。
- rotate(deg)方法通过提供的数组作为参数来旋转元素。当方法被调用的时候通过附加到元素的transform属性上
- end()方法用于Move.js代码片段的结束,它标识动画的结束。技术上,该方法触发动画的播放。该方法接受一个可选的callback回调函数。