外观
fullPage.js 全屏插件
约 1496 字大约 5 分钟
2025-06-19
fullPage.js 是一个基于 jQuery 的全屏滚动插件,能够轻松制作出美观的全屏网站效果。
简介
fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站。如今我们经常能见到全屏网站,尤其是国外网站。这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次。如果你也希望你的网站能设计成全屏的,显得更上档次,你可以试试 fullPage.js。
链接: https://github.com/alvarotrigo/fullPage.js
演示: https://www.dowebok.com/demo/2014/77/
fullPage.js 的主要功能有:
- 支持鼠标滚动
- 支持前进后退和键盘控制
- 多个回调函数
- 支持手机、平板触摸事件
- 支持 CSS3 动画
- 支持窗口缩放,窗口缩放时自动调整
- 可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等
使用方法
1、引入文件
<link rel="stylesheet" href="css/jquery.fullPage.css">
<script src="js/jquery.min.js"></script>
<!-- 3.jquery.easings.min.2.js 用于 easing 参数,也可以使用完整的 jQuery UI 代替 -->
<script src="js/jquery.easings.min.js"></script>
<!-- 如果 scrollOverflow 设置为 true,则需要引入 3.jquery.slimscroll.min.2.js -->
<script src="js/jquery.slimscroll.min.js"></script>
<script src="js/jquery.fullPage.js"></script>2、HTML 结构
<div id="fullpage-id">
<div class="section">
<h3>第一屏</h3>
</div>
<div class="section">
<h3>第二屏</h3>
</div>
<div class="section">
<h3>第三屏</h3>
</div>
<div class="section">
<h3>第四屏</h3>
</div>
</div>每个 section 代表一屏,默认显示"第一屏"。如果要指定加载页面时显示的"屏幕",可以在对应的 section 加上 class="active":
<div class="section active">第三屏</div>同时,可以在 section 内加入 slide,实现横向滑动效果:
<div id="fullpage-id">
<div class="section">第一屏</div>
<div class="section">第二屏</div>
<div class="section">
<div class="slide">第三屏的第一屏</div>
<div class="slide">第三屏的第二屏</div>
<div class="slide">第三屏的第三屏</div>
<div class="slide">第三屏的第四屏</div>
</div>
<div class="section">第四屏</div>
</div>3、JavaScript 初始化
$(function() {
$('#fullpage-id').fullpage({
// 配置项
});
});配置项
选项
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
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 | 触屏滚动元素阈值 |
方法
| 方法 | 说明 |
|---|---|
moveSectionUp() | 向上滚动一屏 |
moveSectionDown() | 向下滚动一屏 |
moveTo(section, slide) | 滚动到指定位置和幻灯片 |
moveSlideRight() | slide 向右滚动 |
moveSlideLeft() | slide 向左滚动 |
setAutoScrolling() | 设置页面滚动方式,设置为 true 时自动滚动 |
setAllowScrolling() | 添加或删除鼠标滚轮/触控板控制 |
setKeyboardScrolling() | 添加或删除键盘方向键控制 |
setScrollingSpeed() | 定义以毫秒为单位的滚动速度 |
回调函数
| 回调函数 | 说明 |
|---|---|
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 个参数 |
完整示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>fullPage.js 示例</title>
<link rel="stylesheet" href="css/jquery.fullPage.css">
<style>
.section { text-align: center; font-size: 2em; }
.section:nth-child(1) { background: #ff6b6b; }
.section:nth-child(2) { background: #4ecdc4; }
.section:nth-child(3) { background: #45b7d1; }
.section:nth-child(4) { background: #96ceb4; }
</style>
</head>
<body>
<div id="fullpage-id">
<div class="section"><h1>第一屏 - 欢迎</h1></div>
<div class="section"><h1>第二屏 - 关于我们</h1></div>
<div class="section">
<div class="slide"><h2>幻灯片 1</h2></div>
<div class="slide"><h2>幻灯片 2</h2></div>
</div>
<div class="section"><h1>第四屏 - 联系我们</h1></div>
</div>
<script src="js/jquery.min.js"></script>
<script src="js/jquery.fullPage.js"></script>
<script>
$(function() {
$('#fullpage-id').fullpage({
navigation: true,
navigationPosition: 'right',
scrollingSpeed: 700,
afterLoad: function(origin, destination, direction) {
console.log('滚动到第' + (destination.index + 1) + '屏');
}
});
});
</script>
</body>
</html>