亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

JavaScript實現圖片懶加載的方法分析

2024-05-06 16:45:07
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript實現圖片懶加載的方法。分享給大家供大家參考,具體如下:

懶加載是非常實用的提升網頁性能的方式,當訪問一個頁面的時候,只顯示可視區域內的圖片,其它的圖片只有出現在可視區域內的時候才會被請求加載。

我們現在用原生的js實現簡單的圖片懶加載,主要利用的原理就是先不給設置src,而是把圖片的路徑放在data-src中,等待圖片被加載的時候將路徑取出放到src中。

HTML代碼

<div class="container"> <div class="img-area">  <img class="my-photo" </div> <div class="img-area">  <img class="my-photo" </div> <div class="img-area">  <img class="my-photo" </div> <div class="img-area">  <img class="my-photo" </div> <div class="img-area">  <img class="my-photo" </div></div>

判斷元素是否在可視區域

方法一:

1. 獲取屏幕可視區高度:document.documentElement.clientHeight
2. 獲取元素距頂部的高度:element.offsetTop
3. 獲取滾動高度:document.documentElement.scrollTop
4. 若滿足:2-3<1,那么元素就出現在可視區域

方法二:

1. 獲取元素到可視區域頂部的距離:var bound = element.getBoundingClientRect() 
2. 獲取可視區域的高度:window.innerHeight 
3. 若滿足bound.top<=window.innerHeight,那么元素就出現在可視區域

方法三:

利用IntersectionObserver函數自動觀察元素是否在可視區域內

var watch = new IntersectionObserver(callback,option);//開始觀察watch.observe(el);//停止觀察watch.unobserve(el);//關閉觀察器watch.disconnect();

js代碼

第一種很多人都用過,所以我們就用第二種寫一下

//判斷圖片是否出現在可視區域內function isInSight(el) {    const bound = el.getBoundingClientRect();    const clientHeight = window.innerHeight;    return bound.top <= clientHeight + 100;}//加載圖片let index = 0;function checkImgs() {    const imgs = document.querySelectorAll('.my-photo');    for( let i = index; i < imgs.length; i++){      if(isInSight(imgs[i])){        loadImg(imgs[i]);        index = i;      }    }}function loadImg(el) {    if(!el.src){      const source = el.dataset.src;      el.src = source;    }}//函數節流//函數節流是很重要的思想,可以防止過于頻繁的操作domfunction throttle(fn,mustRun = 500) {    const timer = null;    let previous = null;    return function () {      const now = new Date();      const context = this;      const args = arguments;      if(!previous){        previous = now;      }      const remaining = now -previous;      if(mustRun && remaining >= mustRun){        fn.apply(context,args);        previous = now;      }    }  }//調用函數window.onload=checkImgs;window.onscroll = throttle(checkImgs);

我們在用第三種方法寫一個demo

function checkImgs() { const imgs = Array.from(document.querySelectorAll(".my-photo")); imgs.forEach(item => io.observe(item));}function loadImg(el) { if (!el.src) {  const source = el.dataset.src;  el.src = source; }}const io = new IntersectionObserver(ioes => { ioes.forEach(ioe => {  const el = ioe.target;  const intersectionRatio = ioe.intersectionRatio;  if (intersectionRatio > 0 && intersectionRatio <= 1) {   loadImg(el);  }  el.onload = el.onerror = () => io.unobserve(el); });});

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费在线视频| 97婷婷涩涩精品一区| 国产午夜精品一区二区三区| 亚洲va欧美va国产综合剧情| 久久久亚洲影院你懂的| 亚洲色图五月天| 亚洲精品91美女久久久久久久| 狠狠躁夜夜躁久久躁别揉| 久久这里有精品| 国产精品 欧美在线| 伊人久久久久久久久久久久久| 久久久久久美女| 成人精品一区二区三区电影黑人| 亚洲热线99精品视频| 精品国产一区二区三区久久狼黑人| 91免费看国产| 茄子视频成人在线| 欧美中文在线免费| 国产a∨精品一区二区三区不卡| 日韩毛片在线看| 欧美有码在线观看视频| 美女撒尿一区二区三区| 欧美香蕉大胸在线视频观看| 中文字幕亚洲第一| 成人精品一区二区三区| 国产精品白丝av嫩草影院| 中文字幕日韩精品在线观看| 欧美成人精品h版在线观看| 一本色道久久88综合亚洲精品ⅰ| 久久久久久亚洲精品| 国语自产精品视频在线看抢先版图片| 揄拍成人国产精品视频| 国产精品国产亚洲伊人久久| 国色天香2019中文字幕在线观看| 成人国产精品久久久| 成人激情av在线| 一本一本久久a久久精品综合小说| 亚洲国产精品大全| 51精品在线观看| 亚洲综合国产精品| 国产欧美精品xxxx另类| 中文字幕精品久久| 国产日韩一区在线| 欧美大片在线影院| 日韩国产高清视频在线| 久久久久久免费精品| 欧美性猛交xxxx乱大交蜜桃| 国产色婷婷国产综合在线理论片a| 欧美在线精品免播放器视频| 91在线视频导航| 日本成人精品在线| 超在线视频97| 亚洲性视频网址| 欧美日韩一区免费| 精品久久久中文| 精品色蜜蜜精品视频在线观看| 亚洲免费精彩视频| 欧洲中文字幕国产精品| 91伊人影院在线播放| 欧美激情精品久久久久久黑人| 欧美成人免费一级人片100| 精品香蕉一区二区三区| 欧美性理论片在线观看片免费| 中文亚洲视频在线| 欧美黄色片在线观看| 欧美丰满少妇xxxx| 日韩h在线观看| 亚洲国产精品久久久久秋霞不卡| 伊人伊人伊人久久| 久久99精品久久久久久噜噜| 欧美在线一区二区视频| 亚洲女人天堂成人av在线| 一区二区欧美久久| 国产丝袜视频一区| 国产精品综合不卡av| 日韩免费av在线| 精品国产一区二区三区四区在线观看| 97超级碰碰人国产在线观看| 久久久久亚洲精品成人网小说| 久久综合国产精品台湾中文娱乐网| 国产一区二区美女视频| 动漫精品一区二区| 成人黄色免费网站在线观看| 日韩中文字幕第一页| 亚洲美女又黄又爽在线观看| 91精品国产色综合久久不卡98口| 成人免费在线视频网站| 26uuu另类亚洲欧美日本一| 久久亚洲国产精品成人av秋霞| 久久久久久久一区二区| 97色在线视频观看| 亚洲电影免费观看| 欧美日韩午夜视频在线观看| 日本中文字幕不卡免费| 黄网站色欧美视频| 国产一区二区日韩精品欧美精品| 亚洲精品视频免费在线观看| 欧美性xxxx| 国产精品美女主播在线观看纯欲| 日韩网站免费观看| 精品丝袜一区二区三区| 日韩美女视频免费在线观看| 日韩视频免费在线| 亚洲午夜精品久久久久久久久久久久| 欧美成在线观看| 4438全国亚洲精品在线观看视频| 亚洲成人免费在线视频| 91亚洲精品久久久久久久久久久久| 欧美午夜精品久久久久久人妖| 久久久99免费视频| 久久久久中文字幕2018| 97在线观看免费高清| 中文字幕综合在线| 精品久久久精品| 成人黄在线观看| 日韩成人小视频| 成人午夜高潮视频| 色综合久久悠悠| 亚洲а∨天堂久久精品9966| 在线播放国产一区中文字幕剧情欧美| 国产精品福利在线观看网址| 精品亚洲aⅴ在线观看| 欧美在线免费视频| 久久久午夜视频| 色老头一区二区三区在线观看| 国产精品高清免费在线观看| 欧美日韩亚洲精品一区二区三区| 亚洲高清在线观看| 日本三级久久久| 成人性生交xxxxx网站| 成人在线观看视频网站| 91天堂在线观看| 国产精品视频网址| 欧美日韩中国免费专区在线看| 亚洲男人的天堂在线播放| 久久综合久中文字幕青草| 亚洲a区在线视频| 欧美中文在线观看国产| 26uuu亚洲伊人春色| 久久亚洲国产成人| 国产精品久久久久久久久久| 欧美黑人巨大精品一区二区| 欧美国产日韩一区二区三区| 亚洲电影免费观看高清完整版在线| 91av中文字幕| 曰本色欧美视频在线| 亚洲偷熟乱区亚洲香蕉av| 亚洲色图18p| 国产一区二区三区久久精品| 亚洲人成电影网站色www| 不卡在线观看电视剧完整版| 狠狠久久亚洲欧美专区| 欧美性开放视频| 国产成人亚洲精品| 欧美理论电影在线播放| 97婷婷大伊香蕉精品视频| 亚洲视频欧美视频| 中文字幕欧美精品日韩中文字幕| 中文字幕九色91在线| 国产精品久久综合av爱欲tv| 亚洲国产精品专区久久| 91精品国产综合久久男男| 国产精品一区二区av影院萌芽| 中文国产亚洲喷潮|