偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

最實用的圖片懶加載精解

移動開發(fā)
圖片延遲加載也稱為懶加載,延遲加載圖片或符合某些條件時才加載某些圖片,通常用于圖片比較多的網(wǎng)頁??梢詼p少請求數(shù)或者延遲請求數(shù),優(yōu)化性能。

定義

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

【1】網(wǎng)頁中的圖片都設為同一張圖片
【2】給圖片增加data-original = "img/test.jpg"的屬性,保存圖片的真實地址
【3】當觸發(fā)某些條件時,自動改變該區(qū)域的圖片的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>

【可視區(qū)顯示圖片】

  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

圖片懶加載性能優(yōu)化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系統(tǒng)改進
點贊
收藏

51CTO技術棧公眾號