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);//默认配置懒加载
  • 相关阅读:
    最好的在线打字练习网站
    input 的 type 等于 file
    windows 删除文件或文件夹
    nvm 管理 node 版本
    github 的 fork 取消功能
    window cmd 命令行下创建文件夹和文件
    17_10_11 Redis 指令
    17_10_11 Mac 上的brew 安装指令
    17_10_11 运算符&,&&,>> 和 >>>
    17_10_10 乱码问题总结
  • 原文地址:https://www.cnblogs.com/yyy6/p/8116807.html
Copyright © 2011-2022 走看看