fullpage.js全屏滚动插件实战:从入门到解决加载白屏问题

作者:半夏

时间:2026-10-30

浏览:546

本文详细介绍fullpage.js全屏滚动插件的功能特性、安装引入方式及HTML结构配置。重点解析初始化侧边栏导航的方法,并针对页面加载初期DOM样式未就绪导致的“白屏挤压”问题,提供通过遮罩层控制显示状态的实用解决方案,提升用户浏览体验。

文章目录

fullpage.js插件概述与获取

近期完成的公司官网项目中,采用了全屏滚动效果,显著提升了用户的浏览体验。在此对fullpage.js插件的具体使用方法进行总结,欢迎交流指正。

一、fullpage.js插件概述

fullpage.js插件概述与获取 

fullpage.js是一款用于实现浏览器全屏滚动效果的JavaScript插件,目前许多网站已采用该插件以优化浏览体验。

该插件主要支持以下功能: • 支持前进、后退及键盘控制 • 提供多个回调函数 • 兼容手机及平板触摸事件 • 支持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

文件引入与HTML结构配置

三、文件引入规范


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

注意:必须优先引入jQuery库,随后再引入fullpage.js。在初期编写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标签添加该ID。 类名为.section的div元素代表一个单页,可通过鼠标滚轮或键盘控制页面切换,也可配置列表导航。 若需在单个页面内实现横向切屏效果,可在.section div内部添加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设置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>

以上为本文全部内容,希望对读者学习有所帮助,欢迎大家支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章