JavaScript之圖片懶加載的實現


圖片懶加載指的是在瀏覽過程中隨着需要才被加載出來,例如某寶上面瀏覽商品時,會伴隨很多的圖片,如果一次全部加載出來的話,顯然資源有些浪費,並且加載速度也會相對降低,那么懶加載的實現很重要。即隨着瀏覽翻閱時,下面的圖片才被加載出來,這樣又不浪費帶寬,訪問網頁速度也很快,用戶體驗也會有所提升。

說了這么多,其實所需要注意的要點有:

  1. 屏幕可視區域的高度
  2. 每張圖片在文檔中的高度
  3. 圖片符合要求進行加載時,將圖片地址賦值給屬性 src
  4. 對屏幕滾動事件進行監控
  5. 首次進入網頁未滑動屏幕時要顯示的圖片

代碼如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>圖片懶加載實現</title>
 6     <style>
 7         img{
 8             width: 300px;
 9         }
10     </style>
11 </head>
12 <body>
13 <div>
14     <p><img src="" data-original="./Saved Pictures/shawu.jpg" /></p>
15     <p><img src="" data-original="./Saved Pictures/ass.jpg" /></p>
16     <p><img src="" data-original="./Saved Pictures/LmLm.jpg" /></p>
17     <p><img src="" data-original="./Saved Pictures/和服.jpg" /></p>
18     <p><img src="" data-original="./Saved Pictures/花亭.jpg" /></p>
19     <p><img src="" data-original="./Saved Pictures/康娜.jpg" /></p>
20     <p><img src="" data-original="./Saved Pictures/初音未來.jpg" /></p>
21     <p><img src="" data-original="./Saved Pictures/紅發少女.jpg" /></p>
22     <p><img src="" data-original="./Saved Pictures/shawu.jpg" /></p>
23     <p><img src="" data-original="./Saved Pictures/ass.jpg" /></p>
24     <p><img src="" data-original="./Saved Pictures/LmLm.jpg" /></p>
25     <p><img src="" data-original="./Saved Pictures/和服.jpg" /></p>
26     <p><img src="" data-original="./Saved Pictures/花亭.jpg" /></p>
27     <p><img src="" data-original="./Saved Pictures/康娜.jpg" /></p>
28     <p><img src="" data-original="./Saved Pictures/初音未來.jpg" /></p>
29     <p><img src="" data-original="./Saved Pictures/紅發少女.jpg" /></p>
30     <p><img src="" data-original="./Saved Pictures/shawu.jpg" /></p>
31     <p><img src="" data-original="./Saved Pictures/ass.jpg" /></p>
32     <p><img src="" data-original="./Saved Pictures/LmLm.jpg" /></p>
33     <p><img src="" data-original="./Saved Pictures/和服.jpg" /></p>
34     <p><img src="" data-original="./Saved Pictures/花亭.jpg" /></p>
35     <p><img src="" data-original="./Saved Pictures/康娜.jpg" /></p>
36     <p><img src="" data-original="./Saved Pictures/初音未來.jpg" /></p>
37     <p><img src="" data-original="./Saved Pictures/紅發少女.jpg" /></p>
38 
39 </div>
40 <script src="jquery-3.2.1.slim.js"></script>
41 <script>
42     var wHeight=$(window).height(); //獲取屏幕可視高度
43     $('img').each(function () {     //對圖片進行循環
44         var ownHeight=$(this).offset().top;     //獲取當前圖片在文檔中的位置
45         if(ownHeight<=wHeight){     //如果當前圖片位置在屏幕可視范圍之內加載此圖片
46             $(this).attr('src',$(this).attr('data-original'));
47         }
48     });
49 
50     $(window).on('scroll',function(){       //添加屏幕滾動事件
51         $('img').each(function () {
52             var hasSorollTop=$(window).scrollTop();     //獲取屏幕已滾動高度
53             var ownHeight=$(this).offset().top;
54             if(ownHeight<=(hasSorollTop+wHeight+500)){
55                 //當圖片在屏幕滾動時,距離可視區域500像素時加載此圖片,
56                 // 以保證查看此圖時,下面的一張以提前加載完成
57                 $(this).attr('src',$(this).attr('data-original'));
58             }
59         });
60     });
61 </script>
62 </body>
63 </html>

 

在進行JavaScript練習時,不要一下將代碼寫完,每進行一步要對其進行測試一下,不然到最后哪里出現錯誤修改起來相對比較麻煩。

 

原創不易,尊重版權。轉載請注明出處:http://www.cnblogs.com/xsmile/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM