作为前端开发,页面修改是难免的,这不本来好好地首页,UI妹子告知首页需要调整整屏滚动,没办法只能修改了(可惜了之前为了视差滚动写的代码了);虽说这类交互,手写代码对自己最有利了,可是为了开发效率(其实就是我懒)所以利用插件了,毕竟一个优秀的插件功能是很齐全的,使用起来是方便的很哪!因此我就开始寻找理想的中的插件了,找了好几款,也使用了下,最终觉得这个fullPage是最能满足当前这个需求的了,因此就它了。
先简单介绍下它有哪些功能:
支持鼠标滚动、前进后退和键盘控制、多个回调函数、支持手机和平板触摸事件、支持 CSS3 动画、支持窗口缩放、窗口缩放时自动调整、可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式
总的来说功能挺齐全的,而且使用起来也是很方便。
1.如何使用
引入文件:fullPage是基于jquery编写的,所以必须引入了jquery了,我们还需要入jquery.easings.min.js,它是必须的,用于 easing 参数,或者也可以使用完整的 jQuery UI 代替,最后就是fullPag本身了,还有就是引入它的css文件了,引入代码如下:
<link rel="stylesheet" href="css/jquery.fullPage.css">
<script src="js/jquery.min.js"></script>
<script src="js/jquery.easings.min.js"></script>
<script src="js/jquery.fullPage.js"></script>
HTML写法:
<div id="fullpage">
<div class="section">第一屏</div>
<div class="section">第二屏</div>
<div class="section">第三屏</div>
<div class="section">第四屏</div>
</div>
JS写法:
$(function(){
$('#fullpage').fullpage();
});
这样写就完成了,整屏滚动效果就出来了!
2.配置
先说几个常用的:
页面滑动速度:scrollingSpeed(单位:毫秒)
是否显示导航栏:navigation (默认false)多说一句(一般的整屏滚动页面,按开发人员意识交互增强,而按使用者交互就少,所以这种整屏滚动的最后要加上导航栏,否则容易使使用者迷路)。
回调函数:
conLeave -- 滚动前调用回调函数
afterLoad -- 滚动到某一屏后的回调函数
代码:
$(function(){
$('#fullpage').fullpage({
'navigation': true,
onLeave: function(anchorLink, index){
if(index!=1){
console.log(123);
console.log($('#nav'));
$('#nav').removeClass('top-bottom').addClass('top-top');
$('.nav-search').show();
}else{
$('.nav-search').hide();
$('#nav').removeClass('top-top').addClass('top-bottom');
}
},
});
});
完整补充:
1、选项
名称 |类型| default |说明
---|---|---
verticalCentered |字符串| true |内容是否垂直居中
verticalCentered |字符串 |true |内容是否垂直居中
resize |布尔值 |false |字体是否随着窗口缩放而缩放
slidesColor |函数 |无 |设置背景颜色
anchors |数组 |无 |定义锚链接
scrollingSpeed |整数 |700 |滚动速度,单位为毫秒
easing |字符串 |easeInQuart |滚动动画方式
menu |布尔值 |false |绑定菜单,设定的相关属性与 anchors 的值对应后,菜单可以控制滚动
navigation |布尔值 |false |是否显示项目导航
navigationPosition |字符串 |right |项目导航的位置,可选 left 或 right
navigationColor |字符串 |#000 |项目导航的颜色
navigationTooltips |数组| 空 |项目导航的 tip
slidesNavigation |布尔值 |false |是否显示左右滑块的项目导航
slidesNavPosition |字符串 |bottom |左右滑块的项目导航的位置,可选 top 或 bottom
controlArrowColor |字符串 |#fff |左右滑块的箭头的背景颜色
loopBottom |布尔值 |false |滚动到最底部后是否滚回顶部
loopTop |布尔值 |false |滚动到最顶部后是否滚底部
loopHorizontal |布尔值 |true |左右滑块是否循环滑动
autoScrolling |布尔值 |true |是否使用插件的滚动方式,如果选择 false,则会出现浏览器自带的滚动条
scrollOverflow |布尔值 |false |内容超过满屏后是否显示滚动条
css3 |布尔值 |false |是否使用 CSS3 transforms 滚动
paddingTop |字符串 |0 |与顶部的距离
paddingBottom |字符串| 0 |与底部距离
fixedElements |字符串 |无 |
normalScrollElements | |无 |
keyboardScrolling |布尔值 |true |是否使用键盘方向键导航
touchSensitivity |整数 |5 |
continuousVertical |布尔值 |false |是否循环滚动,与 loopTop 及 loopBottom 不兼容
animateAnchor |布尔值| true |
normalScrollElementTouchThreshold |整数| 5|
2、方法
名称 |方法
---|---|---
moveSectionUp() |向上滚动
moveSectionDown() |向下滚动
moveTo(section, slide) |滚动到
moveSlideRight() |slide 向右滚动
moveSlideLeft() slide |向左滚动
setAutoScrolling() |设置页面滚动方式,设置为 true 时自动滚动
setAllowScrolling() |添加或删除鼠标滚轮/触控板控制
setKeyboardScrolling() |添加或删除键盘方向键控制
setScrollingSpeed() |定义以毫秒为单位的滚动速度
3、回调函数
名称 |方法
---|---|---
afterLoad |滚动到某一屏后的回调函数,接收 anchorLink 和 index 两个参数,anchorLink 是锚链接的名称,index 是序号,从1开始计算
onLeave |滚动前的回调函数,接收 index、nextIndex 和 direction 3个参数:index 是开的“页面”的序号,从1开始计算;nextIndex 是滚动到的“页面”的序号,从1开始计算direction 判断往上滚动还是往下滚动,值是 up 或 down。
afterRender |页面结构生成后的回调函数,或者说页面初始化完成后的回调函数
afterSlideLoad |滚动到某一水平滑块后的回调函数,与 afterLoad 类似,接收 anchorLink、index、slideIndex、direction 4个参数
onSlideLeave |某一水平滑块滚动前的回调函数,与 onLeave 类似,接收 anchorLink、index、slideIndex、direction 4个参数