国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

網(wǎng)頁(yè)圖片延時(shí)加載的js代碼

2024-05-06 14:10:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

實(shí)現(xiàn)原理 

把所有需要延時(shí)加載的圖片改成如下的格式:

<img lazy_src="圖片路徑" border="0"/>

然后在頁(yè)面加載時(shí),把所有使用了lazy_src的圖片都保存到數(shù)組里,然后在滾動(dòng)時(shí)計(jì)算可視區(qū)域的top,然后把延時(shí)加載的圖片中top小于當(dāng)前可視區(qū)域(即圖片出現(xiàn)在可視區(qū)域內(nèi))的圖片的src的值用lazy_src的來(lái)替換(加載圖片)

代碼

              lazyLoad=(function() {
              var map_element = {};
              var element_obj = [];
              var download_count = 0;
              var last_offset = -1;
              var doc_body;
              var doc_element;
              var lazy_load_tag;
              function initVar(tags) {
              doc_body = document.body;
              doc_element = document.compatMode == 'BackCompat' ? doc_body: document.documentElement;
              lazy_load_tag = tags || ["img", "iframe"];
              };
              function initElementMap() {
              var all_element = [];
              //從所有相關(guān)元素中找出需要延時(shí)加載的元素
              for (var i = 0,
              len = lazy_load_tag.length; i < len; i++) {
              var el = document.getElementsByTagName(lazy_load_tag[i]);
              for (var j = 0,
              len2 = el.length; j < len2; j++) {
              if (typeof(el[j]) == "object" && el[j].getAttribute("lazy_src")) {
              element_obj.push(all_element[key]);
              }
              }
              }

              for (var i = 0,
              len = element_obj.length; i < len; i++) {
              var o_img = element_obj[i];
              var t_index = getAbsoluteTop(o_img);//得到圖片相對(duì)document的距上距離
              if (map_element[t_index]) {
              map_element[t_index].push(i);
              } else {
              //按距上距離保存一個(gè)隊(duì)列
              var t_array = [];
              t_array[0] = i;
              map_element[t_index] = t_array;
              download_count++;//需要延時(shí)加載的圖片數(shù)量
              }
              }

              };
              function initDownloadListen() {
              if (!download_count) return;
              var offset = (window.MessageEvent && !document.getBoxObjectFor) ? doc_body.scrollTop: doc_element.scrollTop;
              //可視化區(qū)域的offtset=document的高+
              var visio_offset = offset + doc_element.clientHeight;
              if (last_offset == visio_offset) {
              setTimeout(initDownloadListen, 200);
              return;
              }
              last_offset = visio_offset;
              var visio_height = doc_element.clientHeight;
              var img_show_height = visio_height + offset;
              for (var key in map_element) {
              if (img_show_height > key) {
              var t_o = map_element[key];
              var img_vl = t_o.length;
              for (var l = 0; l < img_vl; l++) {
              element_obj[t_o[l]].src = element_obj[t_o[l]].getAttribute("lazy_src");
              }
              發(fā)表評(píng)論 共有條評(píng)論
              用戶名: 密碼:
              驗(yàn)證碼: 匿名發(fā)表

              圖片精選

              主站蜘蛛池模板: 威海市| 丰镇市| 宿迁市| 瑞昌市| 龙口市| 洛隆县| 马山县| 邻水| 澳门| 龙山县| 明星| 龙海市| 始兴县| 崇义县| 彰化县| 吴堡县| 墨竹工卡县| 昌江| 达孜县| 五莲县| 佛冈县| 昌黎县| 云南省| 富民县| 昭觉县| 和静县| 康保县| 安平县| 岳西县| 丹江口市| 华容县| 夏津县| 乌兰察布市| 高台县| 黔西县| 九台市| 尉氏县| 邵武市| 如皋市| 玉林市| 临海市|