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 相关文章推荐
理解JavaScript中的事件
Sep 23 Javascript
判断脚本加载是否完成的方法
May 26 Javascript
javascript面向对象之二 命名空间
Feb 08 Javascript
分享Javascript中最常用的55个经典小技巧
Nov 29 Javascript
js返回前一页刷新本页重载页面
Jul 29 Javascript
JavaScript数组常用方法
Mar 02 Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 Javascript
一文快速了解JQuery中的AJAX
May 31 jQuery
小程序Request的另类用法详解
Aug 09 Javascript
JQuery复选框全选效果如何实现
May 08 jQuery
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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
python中Flask框架简单入门实例
2015/03/21 Python
python实现telnet客户端的方法
2015/04/15 Python
python tornado微信开发入门代码
2018/08/24 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
写自荐信三大法宝
2014/01/24 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
社区务虚会发言材料
2014/10/20 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书