成人免费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加載

2021-08-16 12:32:37

HashMap八股文面試

2019-12-10 08:59:55

JVM內存算法

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技術棧公眾號

主站蜘蛛池模板: 国产免费视频 | 亚洲视频在线一区 | 精品日韩一区二区三区 | 久久精品国产亚洲 | а_天堂中文最新版地址 | 欧美日韩中文字幕在线 | 久久久国产一区 | 一区二区播放 | 国产精品久久久久aaaa九色 | 国产成人综合在线 | 国产精品久久久久久久久久 | 污视频免费在线观看 | 久久久久免费 | 久久久久国产 | aaaa日韩 | 国产偷录叫床高潮录音 | 国产女人叫床高潮大片免费 | 久久久久久成人 | 99精品久久久久久中文字幕 | 国产精品久久久久久婷婷天堂 | 午夜精品久久久久久久久久久久 | 日韩免费高清视频 | 国产福利91精品一区二区三区 | 日韩午夜电影在线观看 | 亚洲成人久久久 | 欧美日韩黄 | 黄色av网站在线免费观看 | 久久久爽爽爽美女图片 | 性一交一乱一伦视频免费观看 | 北条麻妃一区二区三区在线观看 | 日韩精品一区二区三区在线播放 | 一区二区三区不卡视频 | 97国产精品视频 | 成人久久久久 | 成人免费视频网址 | 国产三级一区二区 | 91精品久久久久久久久中文字幕 | 久久精品99| 在线精品一区二区三区 | 国产日韩欧美在线观看 | 欧美国产精品一区二区三区 |