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

来源:http://www.cnblogs.com/qjqcs/archive/2016/09/05/5843420.html
-Advertisement-
Play Games

剛做好公司網站,通過全屏滾動,顯著提高了官網的瀏覽體驗。遂總結一下使用fullpage.js的方法。歡迎指正 一. fullpage.js簡介 fullpage.js是一套實現瀏覽器全屏滾動的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>

當然最重要的事情仍然是做好網站優化,提高響應速度,減少資源請求數目,儘快把網站展現在用戶面前



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 高可用架構Keywords 分層解耦 交易系統緩存 分區一致性 資源隔離重點保障 某移動高可用架構 分渠道資源隔離部署 簡訊渠道業務處理機制 -------------------------------------------------------------------------------... ...
  • Atitit.提升 升級類庫框架後的api代碼相容性設計指南 1. 增加api直接增加,版本號在註釋上面增加1 2. 廢棄api,使用主見@dep1 3. 修改api,1 4. 修改依賴import,雅瑤增加文件模式。保持相容性。。1 5. 優先選擇同一個文件內的修改,因為文件多了不好管理了,編譯速 ...
  • Java無疑是最成功的項目之一了,而在其中學習設計模式和架構設計,無疑是最好不過了。 概念: 提供一種方法訪問容器中的各個元素,而又不暴露該對象的內部細節。 使用場景: 和容器經常在一起,我們定義了一個容器,還要提供外部訪問的方法,迭代器模式無疑是最好不過了。 迭代器模式的UML類圖: 下麵的代碼是 ...
  • 今天我們來聊聊如何跟Unity學代碼優化,準確地說,是通過學習Unity的IL2CPP技術的優化策略,應用到我們的日常邏輯開發中。 ...
  • Array對象 創建數組: 數組字面量:var arr1 = [1,2,3]; Array構造函數1:var arr2 = new Array(1,2,3); //[1,2,3] Array構造函數2:var arr3 = new Array(3); var arr3 = new Array(‘3’ ...
  • 定義和用法 push方法 可向數組的末尾添加一個或多個元素,並返回一個新的長度。 join方法 用於把數組中所有元素添加到一個指定的字元串,元素是通過指定的分隔符進行分割的。 語法 arrayObject.push(newelement1,newelement2,....,newelementX) ...
  • 有不問題的地方 還忘指點 源代碼: ...
  • 我們可以在創建對象的函數中直接吸收其他對象的功能,然後對其進行擴展並返回。 下麵,我們用對象表示法第一個普通對象,這是它還看不出有任何被寄生的可能性: 然後我們就用來編寫用於創建triangle對象的函數。 1. 將twoD對象克隆進一個叫做that對象,這一步可以使用我們之前所討論過的任何方法,例 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...