跳转到内容
返回

懒加载

开头

作为最常见的优化页面的一种手段,记录一下学习笔记

正文

什么是懒加载

目的

减少资源加载带来的响应时间过长,造成用户体验不好

具体表现

实现

思路

用到的api

代码

<!-- CSS&HTML -->
<style>
  body {
    margin: 0;
    overflow-x: hidden;
  }

  .box > div {
    width: 100vw;
    height: 100vh;
    margin: 0 auto;
  }

  img {
    width: 100%;
    height: 100%;
  }

  .two,
  .three {
    visibility: hidden;
    opacity: 0;
    transition: all 0.5s;
  }
</style>
<!-- HTML -->
<div class="box" id="box">
  <div class="one">
    <img src="./img/a.jpg" alt="" />
  </div>
  <div class="two">
    <img src="" data-src="./img/b.jpg" alt="" />
  </div>
  <div class="three">
    <img src="" data-src="./img/c.jpg" alt="" />
  </div>
</div>
<script>
  let box = document.querySelector("#box");
  box.addEventListener("mousewheel", () => {
    if (document.documentElement.scrollTop > 10) {
      document.querySelector(".two").style.visibility = "visible";
      document.querySelector(".two").style.opacity = "1";
      document.querySelector(".two img").src = document
        .querySelector(".two img")
        .getAttribute("data-src");
    }
    if (document.documentElement.scrollTop > 722) {
      document.querySelector(".three").style.visibility = "visible";
      document.querySelector(".three").style.opacity = "1";
      document.querySelector(".three img").src = document
        .querySelector(".three img")
        .getAttribute("data-src");
    }
  });
</script>

关于获取dom的大小、位置

提到了scrollTop,顺带总结一下这几个api的区别

clientHeight、clientWidth

clientTop、clientLeft

scrollHeight、scrollWidth

scrollTop、scrollLeft

offsetheight、offsetWidth

offsetTop、offsetLeft



上一篇
资源推荐
下一篇
demo-cli