溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jquery如何實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條

發(fā)布時(shí)間:2022-03-30 10:04:02 來(lái)源:億速云 閱讀:648 作者:iii 欄目:移動(dòng)開發(fā)

這篇文章主要介紹“jquery如何實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條”,在日常操作中,相信很多人在jquery如何實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”jquery如何實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

如下圖,在頁(yè)面加載的時(shí)候,上方紅色的進(jìn)度條

jquery如何實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條

網(wǎng)頁(yè)加載進(jìn)度的好處是能夠更好的反應(yīng)當(dāng)前網(wǎng)頁(yè)的加載進(jìn)度情況,loading進(jìn)度條可用動(dòng)畫的形式從開始0%到100%完成網(wǎng)頁(yè)加載這一過(guò)程。但是目前的瀏覽器并沒(méi)有提供頁(yè)面加載進(jìn)度方面的接口,也就是說(shuō)頁(yè)面還無(wú)法準(zhǔn)確返回頁(yè)面實(shí)際加載的進(jìn)度,本文中我們使用jQuery來(lái)實(shí)現(xiàn)頁(yè)面加載進(jìn)度條效果。

首先我們要知道的是,目前沒(méi)有任何瀏覽器可以直接獲取正在加載對(duì)象的大小。所以我們無(wú)法通過(guò)數(shù)據(jù)大小來(lái)實(shí)現(xiàn)0-100%的加載顯示過(guò)程。

因此我們需要通過(guò)html代碼逐行加載的特性,在整頁(yè)代碼的若干個(gè)跳躍行數(shù)中設(shè)置節(jié)點(diǎn),進(jìn)行大概的模糊進(jìn)度反饋來(lái)實(shí)現(xiàn)進(jìn)度加載的效果。大致意思是:頁(yè)面每加載到指定區(qū)域,則返回(n)%的進(jìn)度結(jié)果,通過(guò)設(shè)置多個(gè)節(jié)點(diǎn),來(lái)達(dá)到一步一步顯示加載進(jìn)度的目的。

假如有一個(gè)頁(yè)面,按區(qū)塊分為頁(yè)頭、左側(cè)內(nèi)容、右邊側(cè)欄、頁(yè)腳四部分,我們把這四部分作為四個(gè)節(jié)點(diǎn),當(dāng)頁(yè)面加載每一個(gè)節(jié)點(diǎn)后,設(shè)置大概加載百分比,頁(yè)面結(jié)構(gòu)如下:

<div id="header"> 
頁(yè)頭部分 
</div> 
<div id="mainpage"> 
左側(cè)內(nèi)容 
</div> 
<div id="sider"> 
右邊側(cè)欄 
</div> 
<div id="footer"> 
頁(yè)腳部分 
</div>

然后我們?cè)谙碌牡谝恍屑由线M(jìn)度條.loading。

<div class="loading"></div>

我們要設(shè)置loading進(jìn)度條的樣式,設(shè)置背景色,高度,以及位置,優(yōu)先級(jí)等。

.loading{ 
  background:#FF6100; //設(shè)置進(jìn)度條的顏色 
  height:5px; //設(shè)置進(jìn)度條的高度 
  position:fixed; //設(shè)定進(jìn)度條跟隨屏幕滾動(dòng) 
  top:0; //將進(jìn)度條固定在頁(yè)面頂部 
  z-index:99999 //提高進(jìn)度條的優(yōu)先層級(jí),避免被其他層遮擋 
}

接下來(lái),我們要在每個(gè)節(jié)點(diǎn)后面加上進(jìn)度動(dòng)畫,使用jQuery來(lái)實(shí)現(xiàn)。

<div id="header"> 
頁(yè)頭部分 
</div> 
<script type="text/javascript"> 
  $('.loading').animate({'width':'33%'},50); //第一個(gè)進(jìn)度節(jié)點(diǎn) 
</script> 
<div id="mainpage"> 
左側(cè)內(nèi)容 
</div> 
<script type="text/javascript"> 
  $('.loading').animate({'width':'55%'},50); //第二個(gè)進(jìn)度節(jié)點(diǎn) 
</script> 
<div id="sider"> 
右邊側(cè)欄 
</div> 
<script type="text/javascript"> 
  $('.loading').animate({'width':'80%'},50); //第三個(gè)進(jìn)度節(jié)點(diǎn) 
</script> 
<div id="footer"> 
頁(yè)腳部分 
</div> 
<script type="text/javascript"> 
  $('.loading').animate({'width':'100%'},50); //第四個(gè)進(jìn)度節(jié)點(diǎn) 
</script>

可以看出,每加載一個(gè)節(jié)點(diǎn)后,jQuery調(diào)用animate()動(dòng)畫方法實(shí)現(xiàn)進(jìn)度條寬度的變化,每個(gè)節(jié)點(diǎn)變化以50毫秒時(shí)間讓進(jìn)度條看起來(lái)更流暢些,最終從0%變化到100%,完成了進(jìn)度條的進(jìn)度動(dòng)畫。

當(dāng)進(jìn)度條達(dá)到100%后,頁(yè)面加載完成,最后還有一步要做的就是隱藏進(jìn)度條。

$(document).ready(function(){ 
  $('.loading').fadeOut();   
});

到此,關(guān)于“jquery如何實(shí)現(xiàn)網(wǎng)頁(yè)加載進(jìn)度條”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI