说到滚屏插件,我主要接触过touchSwipe和FullPage,两者各有优点吧。就我个人认为,前者更加适合新手,简单,易上手;后者适合高端的开发者。
如今我们经常能见到全屏网站,尤其是国外网站。这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次。
今天主要想给大家介绍的是FullPage了,如何实现全屏滚动且实现视觉差效果,至于touchSwipe以后也会讲到。
fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站,主要功能有:
-
支持鼠标滚动
-
支持前进后退和键盘控制
-
多个回调函数
-
支持手机、平板触摸事件
-
支持 CSS3 动画
-
支持窗口缩放
-
窗口缩放时自动调整
-
可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等等
兼容性
jQuery 兼容:
兼容 jQuery 1.7+
浏览器兼容:
IE8/谷歌/火狐/Opera/苹果浏览器
使用方法
1、引入文件:
<script src="js/jquery.min.js"></script> <script src="js/jquery.fullPage.js"></script>
2、HTML:
<div id="article"> <div class="page section1 current"> <div class="contain"> <h3 class="title">这里是第一竖屏</h3> <h4 class="titleEng">This is section1</h4> </div> </div> <div class="page section2"> <div class="contain"> <h3 class="title">这里是第二竖屏</h3> <h4 class="titleEng">This is section2</h4> </div> </div> <div class="page section3"> <div class="contain"> <h3 class="title">这里是第三竖屏</h3> <h4 class="titleEng">This is section3</h4> </div> </div> <div class="page section4"> <div class="contain"> <h3 class="title">这里是第四竖屏</h3> <h4 class="titleEng">This is section4</h4> </div> </div> </div>
每个page代表一屏,默认显示“第一屏”,如果要指定加载页面时显示的“屏幕”,可以在对应的 page 加上 class="current”,如:
3、Javascript:
var interval; runSection = new FullPage({ id : 'article', // id of contain slideTime : 800, // time of slide effect : { // slide effect transform : { translate : 'Y', // 'X'|'Y'|'XY'|'none' scale : [0, 1], // [scalefrom, scaleto] rotate : [0, 0] // [rotatefrom, rotateto] }, opacity : [0, 1] // [opacityfrom, opacityto] }, mode : 'touch,wheel', // mode of fullpage easing : [0, .93, .39, .98], callback : function(index, thisPage) { // callback when pageChange clearTimeout(interval); } });
环境配置
1、属性
选项 | 类型 | 默认值 | 说明 |
---|---|---|---|
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个参数 |
我们可以看下案例:DEMO
网友评论文明上网理性发言 已有1人参与
发表评论:
评论列表