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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...