• 图片懒加载原理


    图片懒加载原理

    一、总结

    一句话总结:

    到达指定加载图片位置时,用data-src的属性值替换img的src的属性值即可,这个时候img就会去请求资源

    imgs[i].src = imgs[i].getAttribute('data-src');

    二、图片懒加载原理

    博客对应课程的视频位置:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7     <title>图片懒加载</title>
     8     <style>
     9         img {
    10             display: block;
    11             width: 100%;
    12             height: 300px;
    13             margin-bottom: 20px;
    14         }
    15     </style>
    16 </head>
    17 <body>
    18     <img data-src="./images/1.jpg" alt="">
    19     <img data-src="./images/2.jpg" alt="">
    20     <img data-src="./images/3.jpg" alt="">
    21     <img data-src="./images/4.jpg" alt="">
    22     <img data-src="./images/5.jpg" alt="">
    23     <img data-src="./images/6.jpg" alt="">
    24     <img data-src="./images/7.jpg" alt="">
    25     <img data-src="./images/8.jpg" alt="">
    26     <img data-src="./images/9.jpg" alt="">
    27     <img data-src="./images/10.jpg" alt="">
    28     <img data-src="./images/1.jpg" alt="">
    29     <img data-src="./images/2.jpg" alt="">
    30 </body>
    31 <script>
    32         var imgs = document.querySelectorAll('img');
    33 
    34         //offsetTop是元素与offsetParent的距离,循环获取直到页面顶部
    35         function getTop(e) {
    36             var T = e.offsetTop;
    37             while(e = e.offsetParent) {
    38                 T += e.offsetTop;
    39             }
    40             return T;
    41         }
    42 
    43         function lazyLoad(imgs) {
    44             var H = document.documentElement.clientHeight;//获取可视区域高度
    45             var S = document.documentElement.scrollTop || document.body.scrollTop;
    46             for (var i = 0; i < imgs.length; i++) {
    47                 if (H + S > getTop(imgs[i])) {
    48                     imgs[i].src = imgs[i].getAttribute('data-src');
    49                 }
    50             }
    51         }
    52 
    53         window.onload = window.onscroll = function () { //onscroll()在滚动条滚动的时候触发
    54             lazyLoad(imgs);
    55         }
    56 </script>
    57 </html>
     
  • 相关阅读:
    Python读写文件学习笔记
    前端轻量级、简单、易用的富文本编辑器 wangEditor 的基本用法
    选择本地文件上传控件 input标签
    push 和 append 以及appendchild 用法和区别
    关于时间获取和时间戳的换算
    动态设置html根字体大小(随着设备屏幕的大小而变化,从而实现响应式)
    JS 判断是否为安卓或IOS系统
    JS动态获取 Url 参数
    for 循环遍历数据动态渲染html
    VUE框架下安装自带http协议
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12526921.html
Copyright © 2020-2023  润新知