fullpage.js全屏滚动插件使用实例


Posted in Javascript onSeptember 06, 2016

刚做好公司网站,通过全屏滚动,显著提高了官网的浏览体验。遂总结一下使用fullpage.js的方法。欢迎指正

一. fullpage.js简介

fullpage.js全屏滚动插件使用实例 

fullpage.js是一套实现浏览器全屏滚动的js插件,很多网站现在都使用了其来实现较好的浏览体验。
 可以实现的功能:

 •支持前进后退和键盘控制
 •多个回调函数
 •支持手机、平板触摸事件
 •支持 CSS3 动画
 •支持窗口缩放
 •窗口缩放时自动调整
 •可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式等等 

二.插件下载

npm|npm install fullpage.js
bower|bower install fullpage.js
github|https://github.com/alvarotrigo/fullPage.js/
cdn|https://cdnjs.com/libraries/fullPage.js

三.文件引入方式 

<link rel="stylesheet" href="css/jquery.fullPage.css">
<script src="js/jquery.min.js"></script>
<script src="js/jquery.fullPage.js"></script>

注意:一定要先引入jquery,再引入fullpage。我刚开始写demo的时候,因为顺序错误,导致不能实现效果,浏览器报错fullpage.js中的jquery未定义。 

四. 写html代码 

<div id="fullpage">
    <div class="section">section1</div>
    <div class="section">section2</div>
    <div class="section">section3</div>
    <div class="section">section4</div>
</div>

所有的内容包含在ID名为fullpage的div内,不可以给body加此。
 类名为.section的div元素便是一个单页,通过鼠标滚轮和键盘可控制不同页面之间的替换,也可设置列表导航。
 同时,如果要在一个页面内做横向的切屏效果,可以在div.section中添加div.slide。代码如下: 

<div class="section">
  <div class="slide"> Slide 1 </div>
  <div class="slide"> Slide 2 </div>
  <div class="slide"> Slide 3 </div>
  <div class="slide"> Slide 4 </div>
</div>

五.初始化fullpage 

$(document).ready(function() {
  $('#fullpage').fullpage(
    {
      .......
      //options 详情参看https://github.com/alvarotrigo/fullPage.js/
    }  
  );
});

设置侧边栏导航 

这个导航一般网站设计都会有,fullpage默认的导航样式是小黑点,也支持设置别的样式。

<ul id="myMenu">
      <li data-menuanchor="firstPage" class="active"><a href="#firstPage">First section</a></li>
      <li data-menuanchor="secondPage"><a href="#secondPage">Second section</a></li>
      <li data-menuanchor="thirdPage"><a href="#thirdPage">Third section</a></li>
      <li data-menuanchor="fourthPage"><a href="#fourthPage">Fourth section</a></li>
</ul>
#myMenu{
  position:fixed;
    ...
} 
$('#fullpage').fullpage({
  anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
  menu: '#myMenu'
});

六.遇到的问题及解决思路 

在网站做好后测试时发现,刚进入页面,在fullpage.js文件未完成初始化之前,此时DOM css正在加载中,所有已显示的样式内容会挤在一块,当加载完之后就会恢复。如果网站优化过关且网速给力的话,这段时间会比较短,但仍会带来不好的用户体验。
 遂尝试各种解决方法:
 1.div.section
 section{overflow:hidden}
经测,这个方法并没有什么卵用。

 2.设置一个空白遮罩,在所有页面完成之前只显示该遮罩,主题内容隐藏,待加载完成之后,内容显示遮罩去除。当然也可以在遮罩层设置网站相关内容。
具体的实现方法demo: 

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    <script language="javascript" type="text/javascript">
        function showAllContent(status1,status2){
         document.getElementByIdx("showContent").style.display=status1;
         document.getElementByIdx("showLoad").style.display=status2;
      }
    </script>
  </head>
<body onLoad='showAllContent("","none")'>
<div id="showLoad" style="z-index:2; display:block; width:auto; height:auto;">页面加载中......</div>
<div id="showContent" style="z-index:1; ">
//最终要显示的内容
</div>
<script>showAllContent("none","");</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 判断 enter 事件
Feb 12 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
Function.prototype.bind用法示例
Sep 16 Javascript
jQuery实现“扫码阅读”功能
Jan 21 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
Aug 04 Javascript
javascript的函数劫持浅析
Sep 26 Javascript
AngularJS 单选框及多选框的双向动态绑定
Apr 20 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
关于layui的动态图标不显示的解决方法
Sep 04 Javascript
vue中使用[provide/inject]实现页面reload的方法
Sep 30 Javascript
JavaScript中变量提升机制示例详解
Dec 27 Javascript
AngularJS  $on、$emit和$broadcast的使用
Sep 05 #Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
Sep 05 #Javascript
Vuejs第六篇之Vuejs与form元素实例解析
Sep 05 #Javascript
Vue表单实例代码
Sep 05 #Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 #Javascript
JS实现的手机端精简幻灯片效果
Sep 05 #Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
Sep 05 #Javascript
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
JavaScript中的事件处理
2008/01/16 Javascript
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
Javascript继承机制详解
2017/05/30 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
python 布尔操作实现代码
2013/03/23 Python
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
python实现按关键字筛选日志文件
2019/12/24 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
python实现三壶谜题的示例详解
2020/11/02 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
电大毕业生自我鉴定
2014/04/10 职场文书
三方股份合作协议书
2014/10/13 职场文书
Django显示可视化图表的实践
2021/05/10 Python
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技