前端学习之图片加载--先加载小图,再加载大图

前言

前端图片加载是一个常见的场景,当图片比较大时会出现加载缓慢的问题,为了提高用户体验,对图片的加载进行优化是有必要的,以下实现图片的优先加载,即准备几多张图片(小、中、大),优先加载小图,等其他图片下载好了再依次加载。

HTML代码如下:

<div class="banner">
            <img src="../../images/case/caseWindFarm/banner-md.png" data-imglg="../../images/case/caseWindFarm/banner-lg.png" alt="">
        </div>

js代码如下:

//banner img 高清加载
    function imgdownLoad(){
        var setImg = function(imgLgUrl) {
            if(imgLgUrl) {
                var imgObject = new Image();
                imgObject.src = imgLgUrl;
                if(imgObject.complete){ //发现缓存则加载缓存
                    $img.attr("src", imgLgUrl);
                    return ;
                }
                imgObject.onload = function(){ //图片加载完成后替换图片
                    $img.attr("src", imgLgUrl);
                }
            }
        }
        $("img").each(function(){
            var $img = $(this);
            var imgLg = $img.attr("data-imglg"); //高清
            var imgMd = $img.attr("data-imgmd"); //中等
            var imgSm = $img.attr("data-imgsm"); //一般
            setImg(imgSm);
            setImg(imgMd);
            setImg(imgLg);
        });
    }

 

posted @ 2020-11-03 11:57  深如墨&淡如水  阅读(1486)  评论(0编辑  收藏  举报