zoukankan      html  css  js  c++  java
  • javascript原生图片懒加载

    一,原生javascript图片懒加载

    1. 使用方法,例如

    // 要绑定的图片地址
    <img data-src={url} alt=" ">

    2. 在页面中引入下列原生javascript代码

    var Lazy = {
        "Img": null,
        "getY": function(b) {
            var a = 0;
            if (b && b.offsetParent) while (b.offsetParent) a += b.offsetTop, b = b.offsetParent; else b && b.y && (a += b.y);
            return a;
        },
        "getX": function(b) {
            var a = 0;
            if (b && b.offsetParent) while (b.offsetParent) a += b.offsetLeft, b = b.offsetParent; else b && b.x && (a += b.X);
            return a;
        },
        "scrollY": function() {
            var a = document.documentElement;
            return self.pageYOffset || a && a.scrollTop || document.body.scrollTop || 0;
        },
        "scrollX": function() {
            var a = document.documentElement;
            return self.pageXOffset || a && a.scrollLeft || document.body.scrollLeft || 0;
        },
        "windowWidth": function() {
            var a = document.documentElement;
            return self.innerWidth || a && a.clientWidth || document.body.clientWidth;
        },
        "windowHeight": function() {
            var a = document.documentElement;
            return self.innerHeight || a && a.clientHeight || document.body.clientHeight;
        },
        "CurrentHeight": function() {
            return Lazy.scrollY() + Lazy.windowHeight();
        },
        "CurrentWidth": function() {
            return Lazy.scrollX() + Lazy.windowWidth();
        },
        "Load": function(d) {
            Lazy.Init();
            var f = Lazy.CurrentHeight(), b = Lazy.CurrentWidth();
            for (_index = 0; _index < Lazy.Img.length; _index++) {
                var a = Lazy.Img[_index];
                $(a).attr("lazy") == undefined && $(a).attr("lazy", "n");
                if ($(a).attr("lazy") == "y") continue;
                /*$(a).bind("error", function() {
                    this.id == "subject" ? $(this).attr("src", "") : $(this).attr("src", "http://wap.cmread.com/rbc/p/content/repository/ues/image/s109/nopic.png");
                });*/
                if (d == undefined || d == "" || d == null) {
                    var c = Lazy.getY(a), e = Lazy.getX(a);
                    //e < b && c < f && (a.src = a.getAttribute("data-src"), $(a).attr("lazy", "y"), a.removeAttribute("data-src"));
                    c < f && (a.src = a.getAttribute("data-src"), $(a).attr("lazy", "y"), a.removeAttribute("data-src"));
                    $(a).attr("data-rel",e);
                } else if (d == "x") {
                    var c = Lazy.getX(a);
                    c < b && (a.src = a.getAttribute("data-src"), $(a).attr("lazy", "y"));
                    
                }
            }
        },
        "Init": function() {
            var a = document.querySelectorAll("img[data-src]");
            Lazy.Img = a;
        }
    };
    
    //为滚动轴绑定图片懒加载事件
    document.onscroll = function(){Lazy.Load();};
    setTimeout(function(){Lazy.Load();},100);//默认配置懒加载
  • 相关阅读:
    H3C交换机删除VLAN与其绑定端口配置
    H3CNE实验:配置交换机接口
    在H3C交换机上开通一个VLAN并且开通一个端口ping通它
    局域网交换技术知识点
    Java开发中常用的设计模式(二)---单例模式
    Java开发中常用的设计模式(一)---工厂模式
    DevExpress13.2.9 控件使用经验总结
    基于.Net下整合RestSharp,实现REST服务客户端
    基于.Net下整合FastReport,实现条码标签批量打印
    基于.Net下整合IBatis
  • 原文地址:https://www.cnblogs.com/yyy6/p/8116807.html
Copyright © 2011-2022 走看看