美文网首页
面向对象之懒加载

面向对象之懒加载

作者: 李永州的FE | 来源:发表于2017-06-26 13:29 被阅读0次
<html><head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta charset="utf-8">
    <title>图片懒加载-简单</title>
    <style type="text/css">
        ul,li{
            list-style:none;
        }
        .container{
            max-width: 800px;
            margin: 0 auto;
        }
        .container:after{
            content: '';
            display: block;
            clear: both;
        }
        .container li{
            float: left;
            margin: 10px 10px;
        }
        .container li img{
            width: 380px;
            height: 380px;
        }
        p{
            float: left;
        }
    </style>

</head>
<body>
<ul class="container">
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/17d540f700281321.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/17d540f700281321.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/778bea58c7540723.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/91748a6a3420eaa9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/631ccd984f22e81a.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/883186c9850d7156.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/3193fdb1b08f021f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/77c34358685f6464.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/7e9ca9241d0ff975.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#">![](https://img.haomeiwen.com/i6100377/9dfb0f710da5690b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</a></li>
    <li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/10.jpg"></a></li>
    <li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/11.jpg"></a></li>
    <li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/12.jpg"></a></li>
    <li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/13.jpg"></a></li>
    <li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/14.jpg"></a></li>
    <li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/15.jpg"></a></li>
    <li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/16.jpg"></a></li><li><a href="#">
    <img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/17.jpg"></a></li>
    <!-- <p id="hello">hello</p>
    <p id="world">world</p> -->

</ul>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
<script type="text/javascript">
    function Exposure($target,callback){
        this.$target = $target;
        this.callback = callback;
        this.bind();
        this.check();
    }

    Exposure.prototype.bind = function(){
        var _this = this;
        $(window).on('scroll',function(){
            _this.check();
        })
    };
    Exposure.prototype.check = function(){
        if(this.isShow(this.$target)){
            this.callback(this.$target);
        }
    };
    Exposure.prototype.isShow = function(){
        var windowHeight = $(window).height(),
                scrollTop = $(window).scrollTop(),
                offsetTop = this.$target.offset().top,
                nodeHeight = this.$target.height();
        if(windowHeight + scrollTop > offsetTop && scrollTop < nodeHeight + offsetTop){
            return true;
        }else {
            return false;
        }
    };
    var Lazy = (function(){
        return {
            init:function($targets,callback){
                $targets.each(function(idx,target){
                    new Exposure($(target),callback);
                })
            },
            one:function($targets,callback){

            }
        }
    })();
    Lazy.init($('.container img'),function($node){
        showImg($node);
    });
    function showImg($img){
        var imgUrl = $img.attr('data-src');
        $img.attr('src',imgUrl);
    }
</script>



</body></html>

相关文章

  • 面向对象之懒加载

  • iOS 懒加载

    懒加载:也称延时加载,即在对象用到的的时候才加载。其实懒加载,就是所谓的重写对象的get方法,当系统或者开发者调用...

  • swift的

    懒加载的优点 懒加载(lazy load),其实是延时加载,它的优点显而易见,首先,懒加载将对象的创建延迟到了需要...

  • Swift - 懒加载的实现

    懒加载的优点 懒加载(lazy load),其实是延时加载,它的优点显而易见,首先,懒加载将对象的创建延迟到了需要...

  • ios懒加载

    懒加载 所谓的懒加载可以定义为:延时加载,即当对象需要用到的时候再去加载。其实就是所谓的重写对象的get方法,当系...

  • 懒加载 学习记录

    什么是懒加载 懒加载是延时加载,即在使用到该对象的时候才将其加载到内存中。 为什么要用懒加载 主要目的是为了提升效...

  • React项目中组件懒加载的四种方式

    什么是懒加载? 懒加载顾名思义就是延时加载,即当对象需要用到的时候再去加载。 react中组件的懒加载的4种方法 ...

  • Web 体验优化中和图有关的那些事

    什么是懒加载? 只加载可视区的内容,当页面向下滚动时,再继续加载后面的内容。 图片懒加载的原理其实非常简单,我们先...

  • 懒加载

    1、什么是懒加载? 懒加载也被称为延迟加载,它在查询的时候不会立刻访问数据库,而是返回代理对象,当真正去使用对象的...

  • 2018-12-21

    iOS开发中懒加载遇到的坑 正常写一个懒加载对象 - (MAMapView*)mapView{ if(nil=...

网友评论

      本文标题:面向对象之懒加载

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