美文网首页
图片懒加载

图片懒加载

作者: Amanda妍 | 来源:发表于2021-07-14 14:25 被阅读0次
    <!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

    相关文章

      网友评论

          本文标题:图片懒加载

          本文链接:https://www.haomeiwen.com/subject/zueypltx.html