实现思路:img的src默认是loading图片,当图片的高度<视口高度+滚动高度时,替换img的src

    1. <!-- 第一张图片是loading图片,data中的是要加载的图片 -->
    2. <img src="./img/loading.gif" data-src="./img/1.jpg" alt="">
    3. <img src="./img/loading.gif" data-src="./img/2.jpg" alt="">
    4. <img src="./img/loading.gif" data-src="./img/3.jpg" alt="">
    5. <img src="./img/loading.gif" data-src="./img/4.jpg" alt="">
    6. <img src="./img/loading.gif" data-src="./img/5.jpg" alt="">
    7. <img src="./img/loading.gif" data-src="./img/6.jpg" alt="">
    8. <script>
    9. // 获取所有图片
    10. const imgList = document.getElementsByTagName('img')
    11. // 获取视口的高度
    12. let ch = document.documentElement.clientHeight
    13. let len = imgList.length
    14. // 定义懒加载函数
    15. const imgLazy = function (event) {
    16. for (let i = 0; i < len; i++) {
    17. // 判断图片高度是否等于视口高度与滚动高度的和
    18. if (imgList[i].offsetTop < document.documentElement.scrollTop + ch) {
    19. // 改变图片的src
    20. imgList[i].src = imgList[i].dataset.src
    21. }
    22. }
    23. }
    24. // 监听滚动事件与onload事件
    25. window.onscroll = imgLazy
    26. window.onload = imgLazy
    27. </script>