图片懒加载

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <div class="container">
        <div class="row block" id="img-list">
            <div class="col-md-3">
                <img src="./img/banner1%20-%20副本%20(2).png" class="img-thumbnail">
            </div>
            <div class="col-md-3">
                <img src="./img/banner3.png" class="img-thumbnail">
            </div>
            <div class="col-md-3">
                <img src="./img/banner2.jpg" class="img-thumbnail">
            </div>
            <div class="col-md-3">
                <img src="./img/img1.png" class="img-thumbnail">
            </div>
            <div class="col-md-3">
                <img src="./img/img2.png" class="img-thumbnail">
            </div>
            <div class="col-md-3">
                <img src="./img/img4.png" class="img-thumbnail">
            </div>
            <div class="col-md-3">
                <img src="./img/img2.png" class="img-thumbnail">
            </div>
            <div class="col-md-3">
                <img src="./img/banner2.jpeg" class="img-thumbnail">
            </div>
        </div>
    </div>
    
</html>
<script src="js/jquery-3.4.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/ImgLoading.js" type="text/javascript" charset="utf-8"></script>
    <script>
        $("#img-list").ImgLoading({
            errorimg: "./img/error.jpg",
            loadimg: "./img/loading.jpg",
            timeout: 800
        });
    </script>

ImgLoading.js代码如下:(需要先引入jquery)

;(function ($) {
    $.fn.extend({
        ImgLoading: function (options) {
            var defaults = {
                errorimg: "http://www.oyly.net/Images/default/Journey/journeydetail.png",
                loadimg: "http://www1.ytedu.cn/cnet/dynamic/presentation/net_23/images/loading.gif",
                Node: $(this).find("img"),
                timeout: 1000
            };
            var options = $.extend(defaults, options);
            var Browser = new Object();
            var plus = {
                BrowserVerify:function(){
                    Browser.userAgent = window.navigator.userAgent.toLowerCase();
                    Browser.ie = /msie/.test(Browser.userAgent);
                    Browser.Moz = /gecko/.test(Browser.userAgent);
                },
                EachImg: function () {
                    defaults.Node.each(function (i) {
                        var img = defaults.Node.eq(i);
                        plus.LoadEnd(Browser, img.attr("imgurl"), i, plus.LoadImg);
                    })
                },
                LoadState:function(){
                    defaults.Node.each(function (i) {
                        var img = defaults.Node.eq(i);
                        var url = img.attr("src");
                        img.attr("imgurl", url);
                        img.attr("src",defaults.loadimg);
                    })
                },
                LoadEnd: function (Browser, url, imgindex, callback) {
                    var val = url;
                    var img = new Image();
                    if (Browser.ie) {
                        img.onreadystatechange = function () {
                            if (img.readyState == "complete" || img.readyState == "loaded") {
                                callback(img, imgindex);
                            }
                        }
                    } else if (Browser.Moz) {
                        img.onload = function () {
                            if (img.complete == true) {
                                callback(img, imgindex);
                            }
                        }
                    }
                    img.onerror = function () { img.src = defaults.errorimg }
                    img.src = val;
                },
                LoadImg: function (obj, imgindex) {
                    setTimeout(function () {
                        defaults.Node.eq(imgindex).attr("src", obj.src);
                    }, defaults.timeout);
                }
            }
            plus.LoadState();
            plus.BrowserVerify();
            plus.EachImg();
        }
    });      
})(jQuery);

效果图:(一定要先引入jq)


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容