# fullPage.js ![preview](https://raw.github.com/alvarotrigo/fullPage.js/master/examples/imgs/intro.png) ![compatibility](https://raw.github.com/alvarotrigo/fullPage.js/master/examples/imgs/compatible.gif?v=2)

English | Español | Pусский | 中文 | 한국어

--- ![fullPage.js version](http://img.shields.io/badge/fullPage.js-v3.0.2-brightgreen.svg) [![License](https://img.shields.io/badge/License-GPL-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html) [![PayPal Donate](https://img.shields.io/badge/donate-PayPal.me-ff69b4.svg)](https://www.paypal.me/alvarotrigo/9.95) [![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/fullpage.js/badge?style=rounded)](https://www.jsdelivr.com/package/npm/fullpage.js)    **|**   *7Kb gziped*   **|**   *Created by [@imac2](https://twitter.com/imac2)* - [现场演示](http://alvarotrigo.com/fullPage/) - [Wordpress 的主题](http://alvarotrigo.com/fullPage/utils/wordpress.html) - [fullpage.js扩展](http://alvarotrigo.com/fullPage/extensions/) - [常见问题](https://github.com/alvarotrigo/fullPage.js/wiki/FAQ---Frequently-Answered-Questions) --- 通过调用本库可轻易创建全屏滚动网站(也称为单页网站)。 本库可创建全屏滚动网站,同时也可在网站中添加横向滚动条。 - [介绍](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E4%BB%8B%E7%BB%8D) - [兼容性](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E5%85%BC%E5%AE%B9%E6%80%A7) - [许可证](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E8%AE%B8%E5%8F%AF%E8%AF%81) - [用法](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E7%94%A8%E6%B3%95) - [创建链接到段落或幻灯片](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E5%88%9B%E5%BB%BA%E9%93%BE%E6%8E%A5%E5%88%B0%E6%AE%B5%E8%90%BD%E6%88%96%E5%B9%BB%E7%81%AF%E7%89%87) - [创建更小或更大的段落](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E5%88%9B%E5%BB%BA%E6%9B%B4%E5%B0%8F%E6%88%96%E6%9B%B4%E5%A4%A7%E7%9A%84%E6%AE%B5%E8%90%BD) - [fullpage.js添加的状态类](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E7%94%B1fullpagejs%E6%B7%BB%E5%8A%A0%E7%9A%84%E7%8A%B6%E6%80%81%E7%B1%BB) - [快速加载](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E5%BB%B6%E8%BF%9F%E5%8A%A0%E8%BD%BD) - [自动播放内嵌媒体](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE%E6%9A%82%E5%81%9C%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%AA%92%E4%BD%93) - [使用扩展](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E4%BD%BF%E7%94%A8%E6%89%A9%E5%B1%95) - [选项](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E9%80%89%E9%A1%B9) - [方法](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E6%96%B9%E6%B3%95) - [回调](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#callbacks) - [报告问题](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E6%8A%A5%E5%91%8A%E9%97%AE%E9%A2%98) - [完善fullpage.js](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E8%B4%A1%E7%8C%AE%E7%BB%99fullpagejs) - [变更日志](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97) - [创建任务](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E6%9E%84%E5%BB%BA%E4%BB%BB%E5%8A%A1) - [资源](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E5%8F%82%E8%80%83%E8%B5%84%E6%BA%90) - [谁在使用fullpage.js](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E8%B0%81%E5%9C%A8%E4%BD%BF%E7%94%A8-fullpagejs) - [赞赏](https://github.com/alvarotrigo/fullPage.js/tree/master/lang/chinese/#%E6%8D%90%E7%8C%AE) ## 介绍 不仅限于提需求,也欢迎提出编码风格改进的建议。 集思广益,让这个库更加强大,让写代码更轻松! ## 兼容性 fullPage.js兼容所有的现代浏览器,以及一些旧版浏览器,如Internet Explorer 9,Opera 12等都能兼容。 可兼容支持CSS3的浏览器与非支持CSS3的浏览器,适用于旧版浏览器。 同时,手机、平板电脑和触摸屏电脑还提供触屏支持。 特别感谢[Browserstack](http://www.browserstack.com/) 支持fullpage.js。 ## 许可证 ### 商业许可证 如果您想使用fullPage开发商业网站、主题、项目和应用程序,商业许可证是您应使用的许可证。使用这个许可证,您的源代码将保留专有权。 这意味着,您不必将整个应用程序源代码更改为开源许可证。[点击此处购买fullpage商业许可证](https://alvarotrigo.com/fullPage/pricing/) ### 开源许可证 如果您使用与[GNU GPL license v3](https://www.gnu.org/licenses/gpl-3.0.html)兼容的许可证创建开源应用程序,则可以在GPLv3条款下使用fullPage。 **JavaScript和CSS文件中的信用评论应保持完整 (即使在组合或缩小后)** [阅读更多关于fullPage的许可证](https://alvarotrigo.com/fullPage/pricing/)。 ## 用法 正如示例文件所示,需要引用: - JavaScript 文件`fullpage.js` (或其缩小版本 `fullpage.min.js`) - css 文件`fullpage.css` **可选**,使用`css3:false`时,如果您想要使用库中包含的其他缓动效果的功能(`easeInOutCubic`),您可以添加[easings file](https://github.com/alvarotrigo/fullPage.js/tree/master/vendors/easings.min.js)。 ### 使用bower或npm进行安装 **或者**,如果您愿意,可以使用bower或npm安装fullPage.js: 终端: ```shell // 使用bower bower install fullpage.js // 使用npm npm install fullpage.js ``` ### 包含文件: ```html ``` ### 可选用CDN: 如果您倾向使用CDN载入所需文件,fullPage.js在CDNJS: https://cdnjs.com/libraries/fullPage.js ### 要求HTML结构 HTML文件中的首行HTML代码必须使用[HTML DOCTYPE 声明](http://www.corelangs.com/html/introduction/doctype.html),否则可能会遇到代码段高度问题。HTML 5 doctype中的示例: ``. 每个代码段定义为包含`section`类的元素。 第一个代码段作为主页,是默认激活代码。 代码段应进行封装(即`
` )。 封装不能是`body`元素。 ```html
Some section
Some section
Some section
Some section
``` 如果你想定义一个与众不同的起始页面,而不是原始第一段或第一个滑动页,只需将`active`类添加到你想首先载入的段或滑动页。 ```html
Some section
``` 为在代码段中创建横向滑块,每个滑动页将默认定义为包含`slide`类的元素: ```html
幻灯片 1
幻灯片 2
幻灯片 3
幻灯片 4
```` 可以在[`demoPage.html`文件](https://github.com/alvarotrigo/fullPage.js/tree/master/examples/demoPage.html)看到完整的HTML结构的例子 ### 初始化 #### 用Vanilla Javascript初始化 您只需要在关闭``标签之前调用fullPage.js。 ```javascript new fullpage('#fullpage', { //options here autoScrolling:true, scrollHorizontally: true }); //methods fullpage_api.setAllowScrolling(false); ``` #### 使用jQuery进行初始化 如果您需要,您也可以将fullpage.js作为jQuery插件使用! ```javascript $(document).ready(function() { $('#fullpage').fullpage({ //options here autoScrolling:true, scrollHorizontally: true }); //methods $.fn.fullpage.setAllowScrolling(false); }); ``` 函数和方法仍然可以用jQuery方式调用,如在[fullPage.js v2.X](https://github.com/alvarotrigo/fullPage.js/tree/2.9.7)中一样。 #### 带有所有功能选项的Vanilla JS 演示 所有选项设置的更复杂的初始化如下所示: ```javascript var myFullpage = new fullpage('#fullpage', { //导航 menu: '#menu', lockAnchors: false, anchors:['firstPage', 'secondPage'], navigation: false, navigationPosition: 'right', navigationTooltips: ['firstSlide', 'secondSlide'], showActiveTooltip: false, slidesNavigation: false, slidesNavPosition: 'bottom', //滚动 css3: true, scrollingSpeed: 700, autoScrolling: true, fitToSection: true, fitToSectionDelay: 1000, scrollBar: false, easing: 'easeInOutCubic', easingcss3: 'ease', loopBottom: false, loopTop: false, loopHorizontal: true, continuousVertical: false, continuousHorizontal: false, scrollHorizontally: false, interlockedSlides: false, dragAndMove: false, offsetSections: false, resetSliders: false, fadingEffect: false, normalScrollElements: '#element1, .element2', scrollOverflow: false, scrollOverflowReset: false, scrollOverflowOptions: null, touchSensitivity: 15, normalScrollElementTouchThreshold: 5, bigSectionsDestination: null, //可访问 keyboardScrolling: true, animateAnchor: true, recordHistory: true, //设计 controlArrows: true, verticalCentered: true, sectionsColor : ['#ccc', '#fff'], paddingTop: '3em', paddingBottom: '10px', fixedElements: '#header, .footer', responsiveWidth: 0, responsiveHeight: 0, responsiveSlides: false, parallax: false, parallaxOptions: {type: 'reveal', percentage: 62, property: 'translate'}, //自定义选择器 sectionSelector: '.section', slideSelector: '.slide', lazyLoading: true, //事件 onLeave: function(origin, destination, direction){}, afterLoad: function(origin, destination, direction){}, afterRender: function(){}, afterResize: function(width, height){}, afterResponsive: function(isResponsive){}, afterSlideLoad: function(section, origin, destination, direction){}, onSlideLeave: function(section, origin, destination, direction){} }); ``` ### 创建链接到段落或幻灯片 如果你在段落中使用fullPage.js和锚链接(在每个部分使用`anchors`选项或属性`data-anchor`),那么你将能够在一个段落里使用锚链接直接导航到某个幻灯片。 这是一个锚链接的例子: http://alvarotrigo.com/fullPage/#secondPage/2 (在你手动访问该段落/幻灯片就会看到的URL) 请注意,URL的最后部分以`#secondPage / 2`结尾。 以下初始化: ```javascript new fullpage('#fullpage', { anchors:['firstPage', 'secondPage', 'thirdPage'] }); ``` URL`#secondPage/2` 结尾处的锚分别定义了目标段落和幻灯片。 在前面的URL中,目标段落将是使用锚点 `secondPage` 定义的段落,幻灯片将会是第2张幻灯片,因为我们使用索引 `2` 。 (一个段落的第一个幻灯片有索引0,在技术上这是一个段落)。 如果我们在HTML标记中使用属性`data-anchor`,就可以使用自定义锚点来代替它的索引: ```html
幻灯片 1
幻灯片 2
幻灯片 3
幻灯片 4
``` 在最后一种情况中,我们使用的URL将是`#secondPage/slide3`,这相当于之前的 `#secondPage/2`。 请注意,如果没有提供`anchors`数组,则也可以使用`data-anchor`属性以同样的方式定义节锚点。 **注意!**`data-anchor`标记的值不能与站点上的任何ID元素(或IE的NAME元素)相同。 ### 创建更小或更大的段落 [演示](http://codepen.io/alvarotrigo/pen/BKjRYm) fullPage.js提供了一种方法来删除段落和幻灯片的全高限制。 可以创建高度小于或大于视口的段落。 这是页脚的理想方式。 需明白所有段落使用此功能并没有意义,这一点很重要。 如果网站的初始加载中有多个段落,则fullPage.js将不会滚动以查看下一个段落,因为它已经在视口中。 创建更小的段落,只需在要应用的段落中使用`fp-auto-height` 类即可,则可以调用您的段落/幻灯片中定义的高度。 ```html
整个视口
自动高度
``` #### 响应自动高度段落 [演示](https://codepen.io/alvarotrigo/pen/WZmMgZ) 响应自动高度可以通过使用`fp-auto-height-responsive`类来调用。 这种方式段落将全屏,直到响应模式终止。 根据定义调整大小,可能是大于或小于视口。 ### 由fullpage.js添加的状态类 Fullpage.js在不同的元素中添加多个类来保存网站状态的记录: - `active` 添加当前可见部分并滑动。 - `active` 被添加到当前菜单元素(如果使用`menu`选项)。 - `fp-viewing-SECTION-SLIDE`形式的类被添加到网站的 `body` 元素中。(例如: [`fp-viewing-secondPage-0`](http://alvarotrigo.com/fullPage/#secondPage)) `SECTION`和`SLIDE`部分将成为当前部分和幻灯片的锚(或索引,如果没有提供锚)。 - 当进入响应模式时,`fp-responsive`添加到`body`元素` - 当启用fullpage.js时,`fp-enabled`添加到`html`元素。 (并在销毁时被移除)。 - 当fullPage.js被销毁时,`fp-destroyed`被添加到fullpage.js容器中。 ### 延迟加载 [演示](http://codepen.io/alvarotrigo/pen/eNLBXo) fullPage.js提供了一种延迟加载图像、视频和音频元素的方式,这样它们不会减慢网站的加载速度,也不会浪费数据传输。 当使用延迟加载时,所有这些元素只有在进入视口时才会加载。 要启用延迟加载,您只需将`src`属性更改为`data-src`,如下所示: ``` ``` 如果您已经使用另一个使用`data-src`的延迟加载解决方案,则可以通过设置 `lazyLoading: false`选项来禁用fullPage.js延迟加载。 ### 自动播放/暂停嵌入式媒体 **注意**:根据操作系统和浏览器的不同,自动播放功能可能无法在某些移动设备上使用(即[iOS的Safari](https://webkit.org/blog/6784/new-video-policies-for-ios/) 版本 < 10.0)。 #### 播放部分/幻灯片载入: 对于视频或音频使用属性 `autoplay`,或者对于youtube iframe使用参数`autoplay=1`将使得在加载页面时播放媒体元素。 在段落/幻灯片载入使用而不是属性`data-autoplay`播放。 例如: ```html ``` #### 暂停 嵌入式HTML5`