最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實(shí)現(xiàn)多張圖片延遲加載效果

 更新時(shí)間:2017年07月17日 16:50:40   作者:diasa  
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)多張圖片延遲加載效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了js實(shí)現(xiàn)多張圖片延遲加載效果的具體代碼,供大家參考,具體內(nèi)容如下

具體代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <!--做移動(dòng)端響應(yīng)式必須加的樣式-->
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <title>Document</title>
  <style>
    *{
      margin:0;
      padding:0;
      font-size:14px;
    }
    ul,li{
      list-style:none;
    }
    img{
      display:block;
      border:none;
    }
    /*
      最外層容器不設(shè)定寬高的
    */
    .news{
      padding:10px;
    }
    .news li{
      height:60px;
      padding:10px 0;
      border-bottom:1px solid #dedede;
      position:relative;
    }
    .news li > div:nth-child(1){
      position:absolute;
      top:10px;
      left:0;
      width:75px;
      height:60px;
      background:url('img/default.png') no-repeat center center;
      background-size:100% 100%;/*設(shè)置背景圖片大小*/
    }
    .news li > div:nth-child(1) img{
      width:100%;
      height:100%;
      display:none;
      opacity:0;
    }
    .news li > div:nth-child(2){
      height:60px;
      margin-left:80px;
    }
    .news li > div:nth-child(2) h2{
      height:20px;
      line-height:20px;
      /*實(shí)現(xiàn)文字超出隱藏*/
      overflow:hidden;
      text-overflow:ellipsis;
      white-space: nowrap;
    }
    .news li > div:nth-child(2) p{
      line-height:20px;
      font-size:12px;
      color:#ccc;
    }
  </style>
</head>
<body>
  <ul id='news' class='news'>
    <li>
      <div>
        <img src="" alt="">
      </div>
      <div>
        <h2>我是一個(gè)標(biāo)題</h2>
        <p>我是內(nèi)容</p>
      </div>
    </li>
  </ul>

  <script>
    var news = document.getElementById('news')
    var imgList = news.getElementsByTagName('img')
    //1、獲取需要綁定的數(shù)據(jù)(Ajax)
    var jsonData = null;
    ~function(){
      var xhr = new XMLHttpRequest();
      //URL地址后面加的隨機(jī)數(shù)是在清除每一次請(qǐng)求數(shù)據(jù)時(shí)候(GET請(qǐng)求)產(chǎn)生的緩存
      xhr.open('GET','data.json?_='+Math.random(),false)
      xhr.onreadystatechange = function(){
        if(xhr.readystate ===4 && /^2\d{2}$/.test(xhr.status)){
          var val = xhr.responseText;
          jsonData = utils.formatJSON(val)
        }
      }
      xhr.send(null)
    }()
    //2、數(shù)據(jù)綁定->把jsonData存儲(chǔ)的數(shù)據(jù)綁定到頁(yè)面中(字符串拼接)
    ~function(){
      var str = '';
      if(jsonData){
        for(var i = 0,len = jsonData.length;i<len;i++){
          var curData = jsonData[i]
          str+='<li>';
          str+='<div><img src="" trueImg="'+curData['img']+'"></div>';
          str+='<div>';
          str+='<h2>'+curData['title']+'</h2>';
          str+='<p>'+curData['desc']+'</p>';
          str+='</div>';
          str+='</li>';
        }
      }
      news.innerHTML = str;
    }()
    //3、圖片延遲加載
    //我先編寫一個(gè)方法實(shí)現(xiàn)單張圖片的延遲加載
    function lazyImg(curImg){
      var oImg = new Image;
      oImg.src = curImg.getAttribute('trueImg');
      oImg.onload = function(){
        curImg.src = this.src;
        curImg.style.display = "block";
        fadeIn(curImg)
        oImg = null
      };
      curImg.isLoad = true;
    }

    function fadeIn(curImg){
      var duration = 500,interval = 10,target = 1;
      var step = (target/duration)*interval;
      var timer = window.setInterval(function(){
        var curOP = utils.getCss(curImg,'opacity');
        if(curOP>1){
          curImg.style.opacity = 1;
          window.clearInterval(timer)
          return
        }
        curOP+=step;
        curImg.style.opacity = curOP;
      },interval)

    }

    function handleAllImage(){
      for(var i = 0,len = imgList.length;i<len;i++){
        var curImg = imgList[i];
        //當(dāng)前的圖片處理過(guò)了就不需要在重新的進(jìn)行處理了
        if(curImg.isLoad = true){
          continue;
        }
        //只有A小于B的時(shí)候才進(jìn)行處理,當(dāng)前圖片是隱藏的,我們其實(shí)計(jì)算的是它父節(jié)點(diǎn)的A
        var curImgPar = curImg.parentNode;
        var A = utils.offset(curImgPar).top + curImgPar.offsetHeight;
        var B = utils.win('clientHeight')+utils.win('scrollTop');
        if(A<B){
          lazyImg(curImg);
        }
      }
    }

    //4、開(kāi)始的時(shí)候一秒加載第一屏的圖片,當(dāng)滾動(dòng)條滾動(dòng)的時(shí)候,再加載剩余的圖片
    window.setTimeout(handleAllImage,1000);
    window.onscroll = handleAllImage;
  </script>
</body>
</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序開(kāi)發(fā)篇之踩坑記錄

    微信小程序開(kāi)發(fā)篇之踩坑記錄

    這篇文章主要給大家介紹了關(guān)于微信小程序開(kāi)發(fā)篇之踩坑記錄的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Javascript 鍵盤事件的組合使用實(shí)現(xiàn)代碼

    Javascript 鍵盤事件的組合使用實(shí)現(xiàn)代碼

    Javascript 鍵盤事件的組合使用實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2012-05-05
  • 判斷l(xiāng)i是否有樣式的js代碼

    判斷l(xiāng)i是否有樣式的js代碼

    下面的代碼注意實(shí)現(xiàn)先判斷l(xiāng)i是否有樣式,如果沒(méi)有,就添加一個(gè)樣式,原理呢,就是批量檢測(cè)li的className屬性
    2008-09-09
  • 小程序?qū)崿F(xiàn)人臉識(shí)別的項(xiàng)目實(shí)踐

    小程序?qū)崿F(xiàn)人臉識(shí)別的項(xiàng)目實(shí)踐

    人臉識(shí)別在現(xiàn)在很多地方都可以用的到,例如支付,解鎖等,本文就來(lái)介紹一下小程序?qū)崿F(xiàn)人臉識(shí)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • JavaScript仿淘寶頁(yè)面圖片滾動(dòng)加載及刷新回頂部的方法解析

    JavaScript仿淘寶頁(yè)面圖片滾動(dòng)加載及刷新回頂部的方法解析

    這篇文章主要介紹了JavaScript仿淘寶頁(yè)面圖片滾動(dòng)加載及刷新回頂部的方法解析,包括懶加載和onbeforeunload等要點(diǎn)的理解,需要的朋友可以參考下
    2016-05-05
  • 基于javascript的Form表單驗(yàn)證

    基于javascript的Form表單驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了基于javascript的Form表單驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript引擎實(shí)現(xiàn)async/await的方法實(shí)例

    JavaScript引擎實(shí)現(xiàn)async/await的方法實(shí)例

    大家應(yīng)該都知道隨著Node 7的發(fā)布,越來(lái)越多的人開(kāi)始研究據(jù)說(shuō)是異步編程終級(jí)解決方案的async/await,下面這篇文章主要給大家介紹了關(guān)于JavaScript引擎是如何實(shí)現(xiàn)async/await的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • javaScript的函數(shù)對(duì)象的聲明詳解

    javaScript的函數(shù)對(duì)象的聲明詳解

    這篇文章主要介紹了javaScript的函數(shù)對(duì)象的聲明詳解,需要的朋友可以參考下
    2015-02-02
  • 微信小程序性能優(yōu)化之checkSession的使用

    微信小程序性能優(yōu)化之checkSession的使用

    這篇文章主要介紹了微信小程序性能優(yōu)化之checkSession的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • 基于Javascript開(kāi)發(fā)連連看游戲小程序

    基于Javascript開(kāi)發(fā)連連看游戲小程序

    這篇文章主要介紹了基于Java開(kāi)發(fā)連連看游戲小程序,連連看是在有限的時(shí)間內(nèi),只要把所有能連接的相同圖案,兩個(gè)一對(duì)地找出來(lái),消除全部就成功了,文中提供了解決思路和部分實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

璧山县| 忻城县| 阿坝县| 鄢陵县| 张掖市| 察雅县| 明水县| 阳新县| 南华县| 图片| 江孜县| 白银市| 昌图县| 大埔县| 亚东县| 资兴市| 宝兴县| 思茅市| 正宁县| 华池县| 江永县| 大名县| 宝清县| 亳州市| 中阳县| 鹿泉市| 海淀区| 特克斯县| 平湖市| 句容市| 连云港市| 林甸县| 南充市| 汤阴县| 阜阳市| 奈曼旗| 左贡县| 高阳县| 台山市| 文水县| 进贤县|