fullpage.js全屏滾動插件使用小結

剛作好公司網站,經過全屏滾動,顯著提升了官網的瀏覽體驗。遂總結一下使用fullpage.js的方法。歡迎指正javascript

一. fullpage.js簡介


fullpage.js是一套實現瀏覽器全屏滾動的js插件,不少網站如今都使用了其來實現較好的瀏覽體驗。
能夠實現的功能:css

  • 支持前進後退和鍵盤控制
  • 多個回調函數
  • 支持手機、平板觸摸事件
  • 支持 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

四. 寫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。代碼以下:java

<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默認的導航樣式是小黑點,也支持設置別的樣式。jquery

<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正在加載中,全部已顯示的樣式內容會擠在一塊,當加載完以後就會恢復。若是網站優化過關且網速給力的話,這段時間會比較短,但仍會帶來很差的用戶體驗。
遂嘗試各類解決方法:git

  1. div.section
section{overflow:hidden}

經測,這個方法並無什麼卵用。github

2.設置一個空白遮罩,在全部頁面完成以前只顯示該遮罩,主題內容隱藏,待加載完成以後,內容顯示遮罩去除。固然也能夠在遮罩層設置網站相關內容。
具體的實現方法demo:npm

<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>

固然最重要的事情仍然是作好網站優化,提升響應速度,減小資源請求數目,儘快把網站展示在用戶面前

相關文章
相關標籤/搜索