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实现的支持lrc歌词的播放器
May 17 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
Jun 10 Javascript
jQuery实现网页抖动的菜单抖动效果
Aug 07 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
Apr 17 Javascript
利用JavaScript实现栈的数据结构示例代码
Aug 02 Javascript
深入理解vue-router之keep-alive
Aug 31 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
Nov 27 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
Mar 19 Javascript
深入学习JavaScript 高阶函数
Jun 11 Javascript
js 计算月/周的第一天和最后一天代码
Feb 01 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 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
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
2013/10/24 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
深入讲解Python编程中的字符串
2015/10/14 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
python3 下载网络图片代码实例
2019/08/27 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
基本款天堂:Everlane
2017/05/13 全球购物
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
房地产员工找工作的自我评价
2013/11/15 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
思想政治表现评语
2015/01/04 职场文书
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android
app场景下uniapp的扫码记录
2022/07/23 Java/Android