您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“web前端圖片延遲加載舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“web前端圖片延遲加載舉例分析”吧!
首先,定義圖片為三列,一共有5行,具體代碼如下:
里面用到的bootstrap的 布局技術(shù)(當(dāng)然,這不是重點(diǎn)),請(qǐng)看img標(biāo)簽中的src,一開始我們并沒有給它具體的圖片的資源路徑,而是自己定義了一個(gè)屬性 x-src,該屬性的值是圖片圖片的資源路徑,每一行的img都是如此,接下來,當(dāng)頁面載入的時(shí)候,我們使用jquery(當(dāng)然,你想 javascript原生的代碼也可以,我這里只是為了省時(shí)間而已)來循環(huán)遍歷每一個(gè)img,判斷每一個(gè)圖片是否在當(dāng)前可視區(qū)域內(nèi),是則顯示圖片,否則稍 后處理,這里需要知道三個(gè)數(shù)據(jù):
注:因?yàn)槲宜鶎懙氖钱?dāng)圖片的一半進(jìn)入的瀏覽器的可視區(qū)域內(nèi)才將這張圖片進(jìn)行加載,所以需要 第 三 個(gè)數(shù)據(jù),這個(gè)看個(gè)人的需求是什么,如果你的需求是圖片只要已進(jìn)入可視區(qū)域內(nèi)就加載,可直接忽略 第三個(gè)數(shù)據(jù)!!!!
1:瀏覽器可視區(qū)域的高度
2:圖片相對(duì)于文檔的偏移量(這里只需要高度上的偏移量)
3:圖片元素本身的高度
如果圖片先對(duì)于文檔的偏移量+圖片元素本身的高度的一半 < 瀏覽器可視區(qū)域的高度,即表明圖片已經(jīng)有一半進(jìn)入的可視區(qū)域了,那么我就應(yīng)該要把這張圖片加載進(jìn)來了,可是img標(biāo)簽的src是為空的,x-src的值 才是圖片的資源路徑,這個(gè)時(shí)候就需要用jquery將img 標(biāo)簽的x-src值傳給src,從而將圖片加載進(jìn)來,具體實(shí)現(xiàn)代碼如下:
具體的效果如下:
你可以在控制臺(tái)看到,雖然我們有5行圖片,每行有3列,但加載進(jìn)來的圖片只有***列(圖片高度有超出一半的img才會(huì)加載圖片的資源進(jìn)來),其他的都沒有加載進(jìn)來,這就使得圖片的刷新會(huì)很快出現(xiàn)效果,那么接下來,用戶需要看到更多的圖片,這個(gè)時(shí)候需要進(jìn)行滾動(dòng)條往下滾動(dòng),去刷新更多的圖片,那么這個(gè)時(shí)候我們除了上述的3個(gè)數(shù)據(jù)之外,還需要知道當(dāng)前滾動(dòng)條滾動(dòng)的距離,如果:
圖片先對(duì)于文檔的偏移量+圖片元素本身的高度的一半 < 瀏覽器可視區(qū)域的高度 + 當(dāng)前滾動(dòng)條滾動(dòng)的距離,那么表明當(dāng)前圖片已經(jīng)在可視區(qū)域內(nèi),并且圖片有一半以上的高度是在可視區(qū)域內(nèi),那么將圖片進(jìn)行加載進(jìn)來,具體代碼如下:
具體效果如下:
在控制臺(tái)你可以看到,隨著滾動(dòng)條的滾動(dòng),加載進(jìn)來的圖片由原來的三張變成了現(xiàn)在的六張,滾動(dòng)條不斷的往下滾動(dòng),圖片就會(huì)不斷的加載進(jìn)來,從而得到更好的用戶體驗(yàn)。
到此,相信大家對(duì)“web前端圖片延遲加載舉例分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(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)容。