• JS实现图片懒加载demo


    <!DOCTYPE html>
    <html>
    <head>
        <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
        <title>demo lazyload</title>
        <meta charset="utf-8">
        <style type="text/css">
            * {
                padding: 0;
                margin: 0;
                text-decoration: none;
                list-style: none;
            }
            .layout {
                margin: 0 auto;
                width: 1000px;
            }
            .lazyload img {
                width: 300px;
                height: 400px;
            }
            .img-ct {
                margin-left: -50px;
                overflow: auto;
            }
            .item {
                float: left;
                margin-left: 50px;
                margin-bottom: 30px;
            }
        </style>
    </head>
    <body>
    <div class="lazyload">
      <div class="layout">
        <ul class="img-ct">
            <li class="item">
                <a href="javascript:void(0)"><img data-img="1.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="1.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="1.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="1.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="2.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="2.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="2.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="2.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="2.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="3.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="3.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="3.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="3.png" src="default.png"></a>
            </li>
            <li class="item">
                <a href="javascript:void(0)"><img data-img="3.png" src="default.png"></a>
            </li>
        </ul>
      </div>
    </div>
    
    <script type="text/javascript">
    var lazyLoad = (function(){
        var clock;
        
        function init(){
            $(window).on("scroll", function(){
                if (clock) {
                    clearTimeout(clock);
                }
                clock = setTimeout(function(){
                    checkShow();
                }, 200);
            })
            checkShow();
        }
        
        function checkShow(){
            $(".lazyload img").each(function(){
                var $cur =$(this);
                if($cur.attr('isLoaded')){
                    return;
                }
                if(shouldShow($cur)){
                    showImg($cur);
                }
            })
        }
    
        function shouldShow($node){
            var scrollH = $(window).scrollTop(),
                winH = $(window).height(),
                top = $node.offset().top;
    
            if(top < winH + scrollH){
                return true;
            }else{
                return false;
            }
        }
    
        function showImg($node){
            $node.attr('src', $node.attr('data-img'));
            $node.attr('isLoaded', true);
        }
    
        return {
            init: init
        }
    })()
    
    lazyLoad.init();
    </script>
    </body>
    </html>
  • 相关阅读:
    转 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
    call_grant_sel.sql
    sql server 2008 评估期已过期解决办法
    (2.3)学习笔记之mysql基础操作(表/库操作)
    (2.2)学习笔记之mysql基础操作(登录及账户权限设置)
    Red Gate系列
    教你使用SQL数据库索引(1-15)
    cache与buffer的区别
    (4.17)什么情况下应该使用索引
    windows server2003/2008中权限账户
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/7232392.html
Copyright © 2020-2023  润新知