下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、javascript圖片延遲加載實現(xiàn)方法及思 路本文實例為人家介紹了如何通過javascript來延遲加載圖片,分享給人家供人 家參考,具體內(nèi)容如下當(dāng)一個網(wǎng)頁屮含冇大量圖片時,如果一開始就將圖片全部加載完畢,勢必會引起 性能和效率上的問題,用戶可能會由于等待時間過久而離開。這個吋候,我們需要利用懶加載,也就是延遲加載圖片的方式,來提高網(wǎng)站的親 和力。一、延遲加載圖片基本思路如下:給需要延遲加載的圖片設(shè)置自定義屬性比如lazy-src,存在圖片源所在路徑。 然后將所有需要懶加載的圖片放入一個數(shù)組,在window, onscroll的吋候判斷該 數(shù)組內(nèi)容是否出現(xiàn)在了用戶視線中,如果出現(xiàn)了,就將自定
2、義屬性內(nèi)容賦予圖片 的src屬性。下而我們來具體談?wù)剬崿F(xiàn)步驟。首先,我們需要定義函數(shù)返冋瀏覽器的可視區(qū)域位置:/* ©description:返回瀏覽器的可視區(qū)域位置* return: left:左滑輪距離,top:上滑輪距離,width:可見區(qū)域?qū)挾龋?height:可見區(qū)域長度*/function getclient()var 1, t, w, h;1 = document.documentelement. scrollleft|document. body. scrollleft; t 二 document. documentelement. scrolltopi |docum
3、ent. body. scrolltop; w = document, documenlelement, clienlwidth;h = document. documentelement. dientlleight;rctuim left:1, top:t, width:w, height:h;然后定義函數(shù)返冋待加載資源的位置:/* ©description:返回待加載資源位置* ©params: p:需要加載的資源節(jié)點* ©return: left:左邊距離,top:上邊距離,width:寬度,height:高度 */function getsubclient
4、(p)var 1=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;接下來定義函數(shù),判斷兩個矩形區(qū)域是否相交:/* decription:判斷兩個矩陣是否相交,返冋一個布爾值* ©params: recl,rec2:需要比較的節(jié)點矩陣* rcturn: true: 兩矩陣相交*/function
5、contains (reel, rec2)var lcl, lc2, tel, tc2, wl, hl;lei 二 reel, left + reel, width/2;lc2 = rcc2.left + rcc2. width/2;tel = reel.top + reelheight/2;tc2 = rec2.top + rec2.height/2;wl 二(reel, width + rec2. width)/2;hl 二(reel, height + rec2. height)/2; rcturn math, abs(lcl - lc2)<wl&&math. ab
6、s (tel - tc2) <hl;最后對圖片資源進(jìn)行監(jiān)視,如果進(jìn)入用戶視野則加載資源:/* ©description:資源出現(xiàn)在視野小再加載將資源放入一個數(shù)組。*/var arr 二 document. getelementsbyclassname(divx);window. onscrol 1 二 function() var precl = getclient();var prcc2;for(var i = arr.1ength-1;i>=0;i-)if (arri)prec2 二 getsubclient(arri);if (contains(precl, pre
7、c2) 加載資源 consolc. log(eirri id); arr ichildnodes0src =arri. childnodes0. getattribute(,zlazy_src,z); delete arri;當(dāng)然,這里只是講思路,如果用到工程上,還是有很多缺陷,比如性能和兼容性 等。所以推薦一款jquery插件:lazyload1、判斷css加載完成這里順便說一下如何判斷一個web頁而的css文件加載完成。我們知道css通過 外部文件引入,其實是一個link節(jié)點。所以我們只需要通過輪詢來判斷該link 節(jié)點的sheet屬性或者sheet. cssrules屬性,就可以判斷該c
8、ss文件是否完全 加載成功。2、判斷圖片加載完成同樣的,img標(biāo)簽有一個complete屈性,我們只需要通過輪詢來查看該屈性即 可。function imgload(img, caliback) var timor = sctlntcrval (function。 if (img complete) callback(img) clearinterval(timer), 50)imgload (imgl, function() pl. innerhtml(,加載完畢') 3、判斷javascript加載完成 那么如何判斷javascript加載完成呢? script節(jié)點的onload方
9、法就是加載完 成后執(zhí)行的。ie6和ie7則可通過readystate來判斷:function include_js(file) var _doc = document. getelementsbytagname(' head')0;var js = document. createelementscript,);js.setattribute c type', 'text/javascript");js. setattribute( src , file);_doc. appendchiid(js);if (!/*cc_on!*/0) /if not ie/firefox2> firefox3> safari3. l+> 0pera9. 6+ support js.onloadjs. onload = function () alert c firefox2> firefox3> safari3. l+> 0pera96+ supportjs. onloacf ); else /ie6> 1e7 support js. onreadstatechangejs.onreadystatechange 二 function () if (j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 10361-2024小麥、黑麥及其面粉和杜倫麥及其粗粒粉Hagberg-Perten法測定降落數(shù)值
- 《轉(zhuǎn)轂試驗臺培訓(xùn)》課件
- 第五單元學(xué)情評估(含答案)2024-2025學(xué)年統(tǒng)編版七年級語文下冊
- 自身敏感性皮炎的臨床護(hù)理
- 交通事故責(zé)任劃分講解課件-交規(guī)解讀
- 妊高癥的健康宣教
- 心理發(fā)育障礙的臨床護(hù)理
- 2021年功能飲料東鵬飲料分析報告
- 短暫性棘層松解性皮病的臨床護(hù)理
- 《Flash CC整站動畫項目實戰(zhàn)》課件-第5篇 四季沐歌
- 中國上市公司ESG行動報告
- 早產(chǎn)臨床防治指南(2024版)解讀
- 《電子煙知識培訓(xùn)》課件
- GB/T 30661.10-2024輪椅車座椅第10部分:體位支撐裝置的阻燃性要求和試驗方法
- 自動化生產(chǎn)線設(shè)備調(diào)試方案
- 2024-2030年中國醫(yī)藥冷鏈物流行業(yè)競爭格局及投資模式研究報告
- 2024年高中歷史教師資格考試面試試題及解答參考
- 人教版英語八年級下冊 Unit 10 .現(xiàn)在完成時練習(xí)
- GB/T 19274-2024土工合成材料塑料土工格室
- 2023-2024學(xué)年浙江省杭州市拱墅區(qū)八年級(上)期末科學(xué)試卷
- 北京市2024年中考物理真題試卷(含答案)
評論
0/150
提交評論