Fullpage全屏滚动的插件

fullPage.js 是一个基于jQuery的插件,它能够很方便、很轻松的制作出全屏网站...

Featured image

一、简介

   fullPage.js 是一个基于jQuery的插件,它能够很方便、很轻松的制作出全屏网站,主要功能有:

    1.支持鼠标滚动

    2.多个回调函数

    3.支持手机、平板触屏事件

    4.支持css3动画

    5.支持窗口缩放

    6.窗口缩放时自动调整

    7.可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等

  二、获取方式:

      github主页:https://github.com/alvarotrigo/fullPage.js

  

  三、兼容性及大小、版本

    1.支持所有主流浏览器,除IE6、IE7

    2.仅7kb

    3.最新版本是V2.6.7

  四、如何使用:

    1、引入相关文件

      css文件:jquery.fukkPage.css

      jquery文件:1.6以上版本即可

      easing文件:jquery.easing.js,支持更多动画过渡效果的插件,可选的,非必须

      fullPage文件:jquery.fullPage.js

      注意:

        可以使用cdn上的文件,而非本地文件,当部署到自己网站时,可以减轻自己服务器的压力,提高用户的访问速度

        可到 https://cdnjs.com 上去搜索fullPage,该网cdn上的fullPage.js版本是最新的

    2、页面的基本结构

<div id="fullpage">

   <div class="section"> //每一个session对应一个页面

       <div class="slide">slide1</div>//可以给每个页面加slide幻灯片

       <div class="slide">slide2</div>

       <div class="slide">slide3</div>

   </div>

   <div class="section"><h1>这是第二屏</h1></div>

   <div class="section">content</div>

</div>

 3、要想激活fullpage效果,需要加入:

<script>

  $(document).ready(function(){

    $('#fullpage').fullpage();

  })//在加载fullpage的时候引入fullpage方法。

</script>

   五、配置项

    1.sectionColor:

        可以为每一个section设置background-color属性。

        例如:

          $('#fullpage').fullpage({

                sectionColor: ['green','orange','gray','red'];

            });

    2.controlArrows:

      定义是否通过箭头来控制slide幻灯片,默认为true。当我们设置为false,则幻灯片左右两侧的的箭头就会消失,在移动设备上,我盟,可以通过滑动来操作幻灯片。

    3.verticalCentered:

     每一页的内容是否垂直居中,默认为true。一般我们保持默认值

    4.resize:

       字体是否随着窗口缩放而缩放,默认为false

    5.scrollingSpeed:

       滚动速度,单位为毫秒,默认为700

    6.anchors:

         定义锚链接,默认值为[]。有了锚链接,用户就可以快速打开定位到某一页面。

       注意定义锚链接的时候,值不要和页面中任意id或name相同,尤其是在IE浏览器下,而且定义时不需要加#

    7.lockAnchors:

       是否锁定锚链接,默认为false。如果设置为true,那么定义的锚链接,也就是anchors属性则没有效果,这个配置项使用比较少

    8.active:

    在页面中为某一个section添加了active之后,默认当窗口打开时会定位到此active,显示当前页

    <div class="section active"></div>

    9.easing:

     定义页面section滚动的动画方式,默认为easeInOutCubic,如果修改此项,需要引入jquery。easings插件,或者jquery ui。

    10.css3:

    是否使用css3 transforms来实现滚动效果,默认为true。这个配置项可以提高支持css3的浏览器,比如移动设备等的速度,如果浏览器不支持css3,则会使用jquery来替代css3实现滚动效果。即优雅降级,使用jquery实现动画,一般来说,它的性能不如css动画来得快。

    11.loopTop:

    滚动到最顶部后是否连续滚动到底部,默认为false。

    12.loopBottom:

    滚动到最底部后是否连续滚动回顶部,默认为false。

    13.loopHorizontal:

    横向slider幻灯片是否循环滚动,默认为true。设置为false时,在第一个slider时,没有向左滚动的箭头,不能向左滚动。同理,最后一个slider时,没有向右滚动的箭头,不能向右滚动。

    14.autoScrolling:

    是否使用插件的滚动方式,默认为true,如果选择false,则会出现浏览器自带的滚动条,将不会按页滚动,而是按照滚动条的默认行为来滚动。

    15.scrollBar:

    是否包含滚动条,默认为false,如果设置为true,则浏览器自带的滚动条出现,页面滚动时还是按页滚动,但是滚动条的默认行为也有效。

    16.paddingTop/paddingBottom:

    设置每一个section顶部和底部的padding,默认都为0.一般如果我们需要设置一个固定在顶部或者底部的菜单、导航、元素等,可以使用这两个配置项。

    17.fixedElements:

    固定的元素,默认为null,需要配置一个jquery选择器。在页面滚动的时候,fixedElements设置的元素固定不动。

    18.keyboardScrolling:

    是否可以使用键盘方向键导航,默认为true。

    19.touchSensitivity:

    在移动设备中滑动页面的敏感性,默认为5,是按百分比来衡量,最高为100,越大则越难滑动。

    20.continuousVertical:

    是否循环滚动,默认为false。如果设置为true,则页面会循环滚动,而不像loopTop或loopBottom那样出现跳动,注意这个属性和loopTop、loopBottom不兼容,不要同时设置。

    21.animateAnchor:

    锚链接是否可以控制滚动动画,默认为true。如果设置为false,则通过锚链接定位到某个页面显示不再有动画效果。

    22..recordHistory:

    是否记录历史,默认为true,可以记录页面滚动的历史,通过浏览器的前进后退来导航。注意如果设置了autoScrolling:false,那么这个配置也将被关闭,即设置为false。

    23.menu:

    绑定菜单,设定的相关属性与anchors的值对应后,菜单可以控制滚动,默认为false。可以设置为菜单的jquery选择器

    24..navigation:

    是否显示导航,默认为false。如果设置为true,会显示小圆点,作为导航。

    25.navigationPosition:

    导航小圆点的位置,可以设置为left或right。

    26.navigationTooltips:

    导航小圆点的tooltips设置鼠标经过时显示的名字,默认为[],注意按照顺序设置。

    27.showActiveTooltip:

    是否显示当前页面的导航的tooltip信息,默认为false

    28.slidesNavigation:

    是否显示横向幻灯片的导航,默认false。

    29.slidesNavPosition:

    横向幻灯片导航的位置,默认为bottom,可以设置为top或bottom

    30.scrollOverflow:

    内容超过满屏后是否显示滚动条,默认为false。如果设置为true,则会显示滚动条,如果要滚动查看内容,还需要jquery.slimscroll插件的配合。

    31.slimscroll:

    插件主要用于模拟传统的浏览器滚动条。

    32.sectionSelector:

    section的选择器,默认为.section。

    33.slideSelector:

    slide的选择器,默认为.slide。

  六、方法

    1.moveSectionUp():

     向上滚动一页

    2.moveSectionDown(): 

     向下滚动一页

    3.moveTo(section,slide):

     滚动到第几页,第几个幻灯片,注意,页面是1开始,而幻灯片,是从0开始。

    4.slientMoveTo(section,slide):

     滚动到第几页,和moveTo一样,但是没有动画效果。

    5.moveSlideRight():

     幻灯片向右滚动

    6.moveSlideLeft():

     幻灯片向左滚动。

    7.slientMoveTo(section,slide):

     滚动到第几页,和moveTo一样,但是没有动画效果。

    8.moveSlideRight():

     幻灯片向右滚动

    9.moveSlideLeft():

     幻灯片向左滚动

    10.setAutoScrolling(boolean):

     动态设置autoScrolling

    11.setLockAnchors(boolean):

     动态设置lockAnchors

    12.setRecordHistory(boolean):

     动态设置recordHistory

    13.setScrollingSpeed(milliseconds):

     动态设置scrollingSpeed

    14.setAllowScrolling(boolean,[directions]):

     添加或删除鼠标滚轮/滑动控制,第一个参数true为启用,false为禁用,后面的参数为方向,取值包含all,up,down,left,right,可以使用多个,逗号分隔

     比如我们在做一个有奖问答页面,提问的问题在前面的页面有答案,当滚动到最后一页时,不希望用户在滚动回之前的页面查看答案,就可以使用这样的方法。

    15.destroy(type)

     销毁fullpage特效,type可以不写,或者使用all,不写type,fullpaga给页面添加的样式和html元素还在,如果使用all,则样式、html等全部销毁,页面恢复和不使用fullpage相同的效果。

    16.reBuild()

     重新更新页面和尺寸,用于通过ajax请求后改变了页面结构之后,重建效果。

 

  七、fullPage支持延迟加载图片和视频(Lazy Loading)

    1.图片:

    

    2.视频:

    

       

       

    </video>

 

  八、回调函数

    1.afterLoad(anchorLink,index)

    滚动到某一section,且滚动结束后,会触发一次此回调函数,函数接受anchorLink和index两个参数,anchorLink是锚链接的名称,index是序号,从1开始计算。

    我们可以根据anchorLink和index参数值的判断,触发相应的事件。

    2.onleave(index,nextIndex,direction)

    在我们离开一个section时,会触发一次此回调函数,接受index、nextIndex和direction 3个参数:

      index是离开的“页面”的序号,从1开始计算;

      nextIndex是滚动到的目标“页面”的序号,从1开始计算;

      direction判断往上滚动还是往下滚动,值是up或down。

    通过return false;可以取消滚动

    3.afterRender()

    页面结构生成后的回调函数,或者说页面初始化完成后的回调函数。

    4.afterResize()

    浏览器窗口尺寸改变后的回调函数

    5.afterSlideLoad(anchorLink,index,slideAnchor,slideIndex)

    滚动到某一幻灯片后的回调函数,与afterLoad类似,接受anchorLink、index、slidIndex、direction4个参数。

    6.onSlideLeave(anchorLink,index,slideIndex,direction,nextSlideIndex)

    在我们离开一个slide时,会触发一次此回调函数,与onLeave类似,接收anchorLink、index、slideIndex、direction4个参数

 

  九、实现效果

    .设计页面

    .准备文字和图片素材

    .按照设计实现基本的页面效果

    .实现动画

 

  十、Move.js

    1.set()方法用于设置元素的css属性,他带有两个参数:css属性和属性值。

    2.scale()方法用于放大或压缩元素的大小,按照提供的每一个值,将调用transform的scale方法。

    3.rotate(deg)方法通过提供的数值作为参数来旋转元素。当方法被调用的时候通过附加到元素的transform属性上。

    4.eng()方法用于Move.js代码片段的结束,它标识动画的结束。技术上,该方法触发动画的播放。该方法接受一个可选的callback回掉函数。