成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

最實用的圖片懶加載精解

移動開發
圖片延遲加載也稱為懶加載,延遲加載圖片或符合某些條件時才加載某些圖片,通常用于圖片比較多的網頁。可以減少請求數或者延遲請求數,優化性能。

定義

圖片延遲加載也稱為懶加載,延遲加載圖片或符合某些條件時才加載某些圖片,通常用于圖片比較多的網頁。可以減少請求數或者延遲請求數,優化性能。
呈現形式
【1】延時加載,使用setTimeout或setInterval進行加載延遲,如果用戶在加載前就離開,自然就不會進行加載。
【2】條件加載,符合某些條件或者觸發了某些條件才開始異步加載。
【3】可視區域加載,僅僅加載用戶可以看到的區域,這個主要監控滾動條來實現,一般距離用戶看到的底邊很近的時候開始加載,這樣能保證用戶下拉時圖片正好接上,不會有礦長時間的停頓。
基本步驟

【1】網頁中的圖片都設為同一張圖片
【2】給圖片增加data-original = "img/test.jpg"的屬性,保存圖片的真實地址
【3】當觸發某些條件時,自動改變該區域的圖片的src屬性為真實的地
應用

【點擊按鈕顯示圖片】

  1. <!DOCTYPE html> 
  2. <html lang="en"> 
  3. <head> 
  4. <meta charset="UTF-8"> 
  5. <title>Document</title> 
  6. <style> 
  7. body{ 
  8. margin: 0; 
  9. img{ 
  10. height: 100px; 
  11. width: 100px; 
  12. </style> 
  13. </head> 
  14. <body> 
  15. <button>加載圖片</button> 
  16. <img src="#" alt="測試" data-original = "img/test.png"> 
  17. <script> 
  18. var oBtn = document.getElementsByTagName('button')[0]; 
  19. var oImg = document.images[0]; 
  20. oBtn.onclick = function(){ 
  21. oImg.src = "img/loading.gif"
  22. if(oImg.dataset){ 
  23. aftLoadImg(oImg,oImg.dataset.original); 
  24. }else{ 
  25. aftLoadImg(oImg,oImg.getAttribute("data-original")); 
  26. function aftLoadImg(obj,url){ 
  27. var oImg = new Image(); 
  28. oImg.onload = function(){ 
  29. obj.src = oImg.src; 
  30. oImg.src = url
  31. </script> 
  32. </body> 
  33. </html>

【可視區顯示圖片】

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6. <style> 
  7. body{ 
  8. margin: 0
  9. ul{ 
  10. margin: 0
  11. padding: 0
  12. list-style: none; 
  13. img{ 
  14. border: none; 
  15. vertical-align: middle; 
  16. .in{ 
  17. border: 1px solid black; 
  18. margin: 10px; 
  19. text-align: center; 
  20. height: 400px; 
  21. width: 400px; 
  22. float: left; 
  23. .in img{ 
  24. height: 400px; 
  25. width: 400px; 
  26. </style> 
  27. </head> 
  28. <body> 
  29. <ul class="list"
  30. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img1.gif"></li> 
  31. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img2.gif"></li> 
  32. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img3.gif"></li> 
  33. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img4.gif"></li> 
  34. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img1.gif"></li> 
  35. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img2.gif"></li> 
  36. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img3.gif"></li> 
  37. <li class="in"><img src="img/loading.gif" alt="測試" data-original = "img/img4.gif"></li> 
  38. </ul> 
  39.  
  40. <script> 
  41. var oBtn = document.getElementsByTagName('button')[0]; 
  42. var aImages = document.images; 
  43. loadImg(aImages); 
  44. window.onscroll = function(){ 
  45. loadImg(aImages); 
  46. }; 
  47. function loadImg(arr){ 
  48. for( var i = 0,len = arr.length; i < len; i++){ 
  49. if(arr[i].getBoundingClientRect().top < document.documentElement.clientHeight && !arr[i].isLoad){ 
  50. arr[i].isLoad = true
  51. arr[i].style.cssText = "transition: ''; opacity: 0;" 
  52. if(arr[i].dataset){ 
  53. aftLoadImg(arr[i],arr[i].dataset.original); 
  54. }else
  55. aftLoadImg(arr[i],arr[i].getAttribute("data-original")); 
  56. (function(i){ 
  57. setTimeout(function(){ 
  58. arr[i].style.cssText = "transition: 1s; opacity: 1;" 
  59. },16
  60. })(i); 
  61. function aftLoadImg(obj,url){ 
  62. var oImg = new Image(); 
  63. oImg.onload = function(){ 
  64. obj.src = oImg.src; 
  65. oImg.src = url; 
  66.  
  67. </script> 
  68. </body> 
  69. </html> 

 

責任編輯:chenqingxiang 來源: 博客園
相關推薦

2020-11-18 09:30:29

圖片懶加載前端瀏覽器

2021-03-19 06:31:06

vue-lazyloa圖片懶加載項目

2024-04-23 09:35:27

線程終止C#多線程編程

2019-09-09 09:05:59

圖片框架懶加載

2018-08-02 14:08:47

小程序javascriptlazyload

2010-03-09 13:54:05

Linux find命

2011-11-21 12:56:10

Java代理模式設計模式

2025-06-18 10:05:26

2017-03-28 10:11:12

Webpack 2React加載

2019-12-10 08:59:55

JVM內存算法

2021-08-16 12:32:37

HashMap八股文面試

2024-03-20 09:31:00

圖片懶加載性能優化React

2011-01-17 19:35:04

javascriptjqueryweb

2009-07-03 16:45:25

JSP實用教程

2022-06-07 08:18:49

懶加載Web前端

2015-10-29 10:50:46

Android架構設計原則

2010-08-12 14:20:41

CISCO常見問題

2025-02-11 07:40:27

2020-03-31 18:47:22

機器學習ML應用程序

2009-08-01 08:50:25

Windows 7系統改進
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美a级成人淫片免费看 | 九色国产 | 国产欧美精品一区二区三区 | 亚洲综合伊人 | 懂色av一区二区三区在线播放 | 国产在线视频在线观看 | 一区二区在线不卡 | 国产免费看| 在线中文字幕视频 | 国产一二三区免费视频 | 亚洲成人一区 | 青青草一区二区 | 亚洲视频在线观看 | 欧美影院 | 成人乱人乱一区二区三区软件 | 日韩欧美1区2区 | 奇色影视| 久草a√ | 青青久久久 | 成人免费视频网站 | 亚洲欧美精品在线观看 | 成人av免费播放 | 欧美日韩一卡 | 日韩免费视频 | 中文字幕亚洲一区二区三区 | 91精品国产自产在线老师啪 | 99在线国产 | 国产一区二区在线看 | 欧美日韩一二三区 | 亚洲精品一区中文字幕乱码 | 日韩欧美精品 | 黄色av网站在线观看 | 91一区二区三区 | 888久久久| 中文字幕亚洲视频 | 网址黄| 97色在线观看免费视频 | 美女一级a毛片免费观看97 | 日韩在线欧美 | 99精品在线观看 | 国产精品一区一区 |