博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js:原生单张图片延迟加载(图片自己找)
阅读量:6270 次
发布时间:2019-06-22

本文共 2597 字,大约阅读时间需要 8 分钟。

html css js

    
Title 复制代码

utils.js(公共方法)

var utils = (function () {    function offset(curEle) {        var  l = curEle.offsetLeft;        var  t = curEle.offsetTop;        var p = curEle.offsetParent;        while(p.nodeName !=="BODY"){            l+=p.offsetLeft +p.clientLeft;            t+=p.offsetTop+p.clientTop;            p = p.offsetParent;        }        return {            left:l,top:t        }    };    function getCss(curEle,attr) {        var  val;        if("getComputedStyle" in window){            // 先判断是否支持getComputedStyle;            val = getComputedStyle(curEle)[attr];        }else{            val = curEle.currentStyle[attr];        }        // 去单位        var reg = /^(width|height|margin|padding|left|top|right|bottom|fontZise)$/;        // 校验当前属性是否带有单位        if(reg.test(attr)){            // 判断是否为空;            if(!isNaN(parseFloat(val))){                val = parseFloat(val);            }        }        return val;    }// setCss : 每执行一次,都会设置元素一个属性样式;    function setCss(curEle,attr,val) {        var  reg = /^(width|height|top|left|right|bottom|padding|margin)$/;        if(reg.test(attr)){            if(typeof val==="number"){                val = val + "px";            }        }        curEle.style[attr]=val;// 设置行内样式;    }    function setGroupCss(curEle,obj) {        // 遍历obj;调用封装的setCss,设置元素的单个样式;        for(var key in obj){            setCss(curEle,key,obj[key])        }    }    function css(...arg) {// 在函数定义的括号中,... 是剩余运算符;将所有的实参放入到一个数组中;        //        if(arg.length===3){            // [oBox,"height",300]            setCss(...arg);        }else if(arg.length===2){            if(toString.call(arg[1])==="[object Object]"){                setGroupCss(...arg)            }else{                return getCss(...arg)            }        }    }    function win(attr,val) {        // 如果是两个实参,那么一定是设置;如果是一个实参,是获取;        if(val===undefined){            return document.documentElement[attr] || document.body[attr];        }        document.documentElement[attr] = val;        document.body[attr] = val;    }    return {        offset:offset,        getCss:getCss,        setCss:setCss,        setGroupCss:setGroupCss,        css:css,        win:win    }})();// 单例模式/*var utils= {    offset:function offset(curEle) {        var  l = curEle.offsetLeft;        var  t = curEle.offsetTop;        var p = curEle.offsetParent;        while(p.nodeName !=="BODY"){            l+=p.offsetLeft +p.clientLeft;            t+=p.offsetTop+p.clientTop;            p = p.offsetParent;        }        return {            left:l,top:t        }    }}*/复制代码

转载地址:http://awvpa.baihongyu.com/

你可能感兴趣的文章
C# Activex开发、打包、签名、发布 C# Activex开发、打包、签名、发布 [转]
查看>>
05-Vue入门系列之Vue实例详解与生命周期
查看>>
验证码展示
查看>>
浅谈大型web系统架构
查看>>
淘宝大秒系统设计详解
查看>>
linux如何修改登录用户密码
查看>>
Kali Linux 2017中Scapy运行bug解决
查看>>
Python监控进程性能数据并画图保存为PDF文档
查看>>
Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
查看>>
Mac OS 10.10.3下Apache + mod_wsgi配置【一】
查看>>
Hibernate基于注解的双向one-to-many映射关系的实现
查看>>
算法竞赛入门经典 例题 3-2 蛇形填数
查看>>
remove-duplicates-from-sorted-list I&II——去除链表中重复项
查看>>
c++ 网络库
查看>>
Linux 格式化扩展分区(Extended)
查看>>
linux echo命令
查看>>
nginx 内置变量大全(转)
查看>>
lakala反欺诈建模实际应用代码GBDT监督学习
查看>>
java 解析excel工具类
查看>>
Google FireBase - fcm 推送 (Cloud Messaging)
查看>>