javascript圖片延遲加載實(shí)現(xiàn)方法及思路_javascript技巧

javascript圖片延遲加載實(shí)現(xiàn)方法及思路_javascript技巧

ID:31191942

大小:73.00 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2019-01-07

javascript圖片延遲加載實(shí)現(xiàn)方法及思路_javascript技巧_第1頁(yè)
javascript圖片延遲加載實(shí)現(xiàn)方法及思路_javascript技巧_第2頁(yè)
javascript圖片延遲加載實(shí)現(xiàn)方法及思路_javascript技巧_第3頁(yè)
javascript圖片延遲加載實(shí)現(xiàn)方法及思路_javascript技巧_第4頁(yè)
資源描述:

《javascript圖片延遲加載實(shí)現(xiàn)方法及思路_javascript技巧》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、javascript圖片延遲加載實(shí)現(xiàn)方法及思路本文實(shí)例為人家介紹了如何通過(guò)javascript來(lái)延遲加載圖片,分享給人家供人家參考,具體內(nèi)容如下當(dāng)一個(gè)網(wǎng)頁(yè)屮含冇大量圖片時(shí),如果一開(kāi)始就將圖片全部加載完畢,勢(shì)必會(huì)引起性能和效率上的問(wèn)題,用戶可能會(huì)由于等待時(shí)間過(guò)久而離開(kāi)。這個(gè)吋候,我們需要利用懶加載,也就是延遲加載圖片的方式,來(lái)提高網(wǎng)站的親和力。一、延遲加載圖片基本思路如下:給需要延遲加載的圖片設(shè)置自定義屬性比如lazy-src,存在圖片源所在路徑。然后將所有需要懶加載的圖片放入一個(gè)數(shù)組,在window,on

2、scroll的吋候判斷該數(shù)組內(nèi)容是否出現(xiàn)在了用戶視線中,如果出現(xiàn)了,就將自定義屬性內(nèi)容賦予圖片的src屬性。下而我們來(lái)具體談?wù)剬?shí)現(xiàn)步驟。首先,我們需要定義函數(shù)返冋瀏覽器的可視區(qū)域位置:/***?description:返回瀏覽器的可視區(qū)域位置*@return:left:左滑輪距離,top:上滑輪距離,width:可見(jiàn)區(qū)域?qū)挾?,height:可見(jiàn)區(qū)域長(zhǎng)度*/functiongetClient(){var1,t,w,h;1=document.documentElement.scrollLeft

3、

4、docume

5、nt.body.scrollLeft;t二document.documentElement.scrollTopI

6、document.body.scrollTop;w=document,documenlElement,clienlWidth;h=document.documentElement.dientlleight;rctuim{left:1,top:t,width:w,height:h};}然后定義函數(shù)返冋待加載資源的位置:/***?description:返回待加載資源位置*?params:p:需要

7、加載的資源節(jié)點(diǎn)*?return:left:左邊距離,top:上邊距離,width:寬度,height:高度*/functiongetSubClient(p){var1=0,t二0,w,h;w=p.offsctWidth;h=p.offsetHeight;while(p.offsetParent){1+二p.offsetLeft;t+二p.offsetTop;p=p.offsctParcnt;}return{left:1,top:t,width:w,height:h};}接下來(lái)定義函數(shù),判斷兩個(gè)矩形區(qū)域是否

8、相交:/***@decription:判斷兩個(gè)矩陣是否相交,返冋一個(gè)布爾值*?params:recl,rec2:需要比較的節(jié)點(diǎn)矩陣*@rcturn:true:兩矩陣相交*/functioncontains(reel,rec2){varlcl,lc2,tel,tc2,wl,hl;lei二reel,left+reel,width/2;lc2=rcc2.left+rcc2.width/2;tel=reel.top+reel?height/2;tc2=rec2.top+rec2.height/2;wl二(reel

9、,width+rec2.width)/2;hl二(reel,height+rec2.height)/2;rcturnMath,abs(lcl-lc2)

10、Client();varprcc2;for(vari=arr.1ength-1;i>=0;i--){if(arr[i]){prec2二getSubClient(arr[i]);if(contains(precl,prec2)){〃加載資源consolc.log(eirr[i]?id);arr[i]?childNodes[0]?src=arr[i].childNodes[0].getAttribute(,zlazy_src,z);deletearr[i];當(dāng)然,這里只是講思路,如果用到工程上,還是有很多缺陷

11、,比如性能和兼容性等。所以推薦一款jquery插件:lazyload1、判斷css加載完成這里順便說(shuō)一下如何判斷一個(gè)web頁(yè)而的css文件加載完成。我們知道css通過(guò)外部文件引入,其實(shí)是一個(gè)link節(jié)點(diǎn)。所以我們只需要通過(guò)輪詢來(lái)判斷該link節(jié)點(diǎn)的sheet屬性或者sheet.cssRules屬性,就可以判斷該css文件是否完全加載成功。2、判斷圖片加載完成同樣的,img標(biāo)簽有一個(gè)complete屈性,我們只需要通過(guò)輪詢來(lái)查看

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。