zoukankan      html  css  js  c++  java
  • 图片懒加载实现

    •   在现在很多网站上,在图片加载时均采用了懒加载的方式,当页面被请求时,只加载可视区域的图片,其它部分的图片则不加载
    •   而当这些图片出现在可视区域时才会动态加载这些图片,从而提高了初次加载的速度,优化了网页性能

    具体实现方法如下:

     HTML代码

    /*现将src为空,自定义属性存放图片路径,图片进入可视区范围内时,动态将路径赋给src*/
    <div id="div">
        <img src="" data-src="img/1.jpg">
        <img src="" data-src="img/2.jpg">
        <img src="" data-src="img/3.jpg">
        <img src="" data-src="img/4.jpg">
        <img src="" data-src="img/5.jpg">
    </div>

    css代码  这里只是简单的设置了一下样式

     1 div{
     2        550px;
     3          height:420px;
     4             margin:20px auto;
     5         }
     6         img {
     7             display: block;
     8              550px;
     9             height: 420px;
    10         }

    javascript代码

     1 window.onload=function(){
     2        lazy();
     3 //网页加载时先默认加载当前可视区窗口的图片
     4     };
     5     document.onscroll =function(){
     6         lazy();
     7     };
     8 
     9     function lazy(){
    10         var aImg = document.querySelectorAll('img');
    11         var len = aImg.length;
    12         var n = 0;
    13     //存储图片加载到的位置,避免每次都从第一张图片开始遍历
    14             var seeHeight = document.documentElement.clientHeight; 
    15     // 网页可视区高度
    16             var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
    17             //同时使用其中一个为0,另一个生效   兼容不同浏览器    滚轮滚一下100px
    18             for (var i = n; i < len; i++) {
    19                 if (aImg[i].offsetTop <= seeHeight + scrollTop) {    //offsetTop 元素距离页面顶部的距离
    20                     if (aImg[i].getAttribute('src') == '') {
    21                         aImg[i].src = aImg[i].getAttribute('data-src');
    22                     }
    23                     n = i + 1;
    24                 }
    25             }
    26         }        
  • 相关阅读:
    Python的一些小技巧
    Python连接sqlite3数据库
    闭包和toString方法的使用
    webpack(10) webpack扩展(插件. loader)
    webpack(9) 配置文件
    webpack(8) plugin
    webpack(7) 样式处理和图片处理之手写loader
    webpack(6) loader
    webpack(5)入口和出口
    webpack(4)编译过程分析
  • 原文地址:https://www.cnblogs.com/Auyuer/p/8134873.html
Copyright © 2011-2022 走看看