Fork me on GitHub

jquery-懒加载插件

在Web应用程序中,系统的瓶颈常在于系统的响应速度。如果系统响应速度过慢,用户就会出现埋怨情绪,

系统的价值也因此会大打折扣。因此,提高系统响应速度,是非常重要的。

从此可知,再好的网站,再炫的网站,只要在网页打开速度方面缓慢,用户都会对这个网站订下一个差评的分数。

往往拉低网站性能都是图片过多或过大方面,所以一般解决这个问题,网站性能都会大大的提高。

而jquery.lazyload.js这款插件可以解决这方面的问题,而且它简单易懂。
以下为它的简单使用代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery-3.1.0.min.js"></script>
    <script src="jquery.lazyload.min.js"></script>
    <style>
    img{
        width:200px;
        height: 200px;
    }
    li .list{
        background-size: contain;
        width: 200px;
        height: 200px;
    }
    ul{
        margin: 0;
        padding: 0;
        list-style: none;
    }
    li{
        margin: 0;
        padding: 0;
    }
    </style>
</head>
<body>
    <ul>
        <li>1<img class="lazy"  data-original="img/1.png" alt=""></li>
        <li>2<img class="lazy"  data-original="img/2.jpg" alt=""></li>
        <li>3<img class="lazy"  data-original="img/3.jpg" alt=""></li>
        <li>4<img class="lazy"  data-original="img/4.jpg" alt=""></li>
        <li>5<img class="lazy"  data-original="img/5.jpg" alt=""></li>
        <li>6<img class="lazy"  data-original="img/6.png" alt=""></li>
        <li>7<div class="list lazy" data-original="img/7.jpg"></div></li>
    </ul>
    
    <script>
    console.log($("img.lazy").is("img"));
        $(".lazy").lazyload({effect : "fadeIn"});
    </script>
</body>
</html>

具体使用:传送门

这款插件是依赖于jquery的。

这个插件是可以背景加载的,只要是图片加载,就可以懒加载。

这个插件的编写时使用trigger()自定义事件的,贯穿整个插件。

核心代码:

$self.one("appear", function() {
                if (!this.loaded) {
                    if (settings.appear) {
                        var elements_left = elements.length;
                        settings.appear.call(self, elements_left, settings);
                    }
                    $("<img />")
                        .one("load", function() {
                            var original = $self.attr("data-" + settings.data_attribute);
                            $self.hide();
                            if ($self.is("img")) {
                                $self.attr("src", original);
                            } else {
                                $self.css("background-image", "url('" + original + "')");
                            }
                            $self[settings.effect](settings.effect_speed);

                            self.loaded = true;

                            /* Remove image from array so it is not looped next time. */
                            var temp = $.grep(elements, function(element) {
                                return !element.loaded;
                            });
                            elements = $(temp);

                            if (settings.load) {
                                var elements_left = elements.length;
                                settings.load.call(self, elements_left, settings);
                            }
                        })
                        .attr("src", $self.attr("data-" + settings.data_attribute));
                }
            });

 

posted @ 2016-11-19 23:13  小数点就是问题  阅读(373)  评论(0编辑  收藏  举报