fullpage.js全屏滾動插件使用實(shí)例
剛做好公司網(wǎng)站,通過全屏滾動,顯著提高了官網(wǎng)的瀏覽體驗(yàn)。遂總結(jié)一下使用fullpage.js的方法。歡迎指正
一. fullpage.js簡介
fullpage.js是一套實(shí)現(xiàn)瀏覽器全屏滾動的js插件,很多網(wǎng)站現(xiàn)在都使用了其來實(shí)現(xiàn)較好的瀏覽體驗(yàn)。
可以實(shí)現(xiàn)的功能:
•支持前進(jìn)后退和鍵盤控制
•多個(gè)回調(diào)函數(shù)
•支持手機(jī)、平板觸摸事件
•支持 CSS3 動畫
•支持窗口縮放
•窗口縮放時(shí)自動調(diào)整
•可設(shè)置滾動寬度、背景顏色、滾動速度、循環(huán)選項(xiàng)、回調(diào)、文本對齊方式等等
二.插件下載
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的時(shí)候,因?yàn)轫樞蝈e(cuò)誤,導(dǎo)致不能實(shí)現(xiàn)效果,瀏覽器報(bào)錯(cuò)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>
所有的內(nèi)容包含在ID名為fullpage的div內(nèi),不可以給body加此。
類名為.section的div元素便是一個(gè)單頁,通過鼠標(biāo)滾輪和鍵盤可控制不同頁面之間的替換,也可設(shè)置列表導(dǎo)航。
同時(shí),如果要在一個(gè)頁面內(nèi)做橫向的切屏效果,可以在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/ } ); });
設(shè)置側(cè)邊欄導(dǎo)航
這個(gè)導(dǎo)航一般網(wǎng)站設(shè)計(jì)都會有,fullpage默認(rèn)的導(dǎo)航樣式是小黑點(diǎn),也支持設(shè)置別的樣式。
<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' });
六.遇到的問題及解決思路
在網(wǎng)站做好后測試時(shí)發(fā)現(xiàn),剛進(jìn)入頁面,在fullpage.js文件未完成初始化之前,此時(shí)DOM css正在加載中,所有已顯示的樣式內(nèi)容會擠在一塊,當(dāng)加載完之后就會恢復(fù)。如果網(wǎng)站優(yōu)化過關(guān)且網(wǎng)速給力的話,這段時(shí)間會比較短,但仍會帶來不好的用戶體驗(yàn)。
遂嘗試各種解決方法:
1.div.section
section{overflow:hidden}
經(jīng)測,這個(gè)方法并沒有什么卵用。
2.設(shè)置一個(gè)空白遮罩,在所有頁面完成之前只顯示該遮罩,主題內(nèi)容隱藏,待加載完成之后,內(nèi)容顯示遮罩去除。當(dāng)然也可以在遮罩層設(shè)置網(wǎng)站相關(guān)內(nèi)容。
具體的實(shí)現(xiàn)方法demo:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>無標(biāo)題文檔</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; "> //最終要顯示的內(nèi)容
</div>
<script>showAllContent("none","");</script>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何通過Proxy實(shí)現(xiàn)JSBridge模塊化封裝
這篇文章主要介紹了如何通過Proxy實(shí)現(xiàn)JSBridge模塊化封裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10最好用的省市二級聯(lián)動 原生js實(shí)現(xiàn)你值得擁有
省市二級聯(lián)動效果,實(shí)現(xiàn)方法有很多,不過其他文章中介紹的都比較籠統(tǒng),在本文有一個(gè)詳細(xì)的實(shí)現(xiàn)過程,使用原生js很容易理解,希望大家可以參考下2013-09-09前端實(shí)現(xiàn)類似chatgpt的對話頁面(案例)
這篇文章主要介紹了前端實(shí)現(xiàn)類似chatgpt的對話頁面(案例),需要的朋友可以參考下2023-03-03nest.js 使用express需要提供多個(gè)靜態(tài)目錄的操作方法
這篇文章主要介紹了nest.js 使用express需要提供多個(gè)靜態(tài)目錄的操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10微信 java 實(shí)現(xiàn)js-sdk 圖片上傳下載完整流程
這篇文章主要介紹了微信 java 實(shí)現(xiàn)js-sdk 圖片上傳下載完整流程的相關(guān)資料,需要的朋友可以參考下2016-10-10js substring從右邊獲取指定長度字符串(示例代碼)
本篇文章主要是對js substring從右邊獲取指定長度字符串的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12當(dāng)某個(gè)文本框成為焦點(diǎn)時(shí)即清除文本框內(nèi)容
這篇文章主要介紹了當(dāng)某個(gè)文本框成為焦點(diǎn)時(shí)如何清除文本框內(nèi)容,需要的朋友可以參考下2014-04-04