博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js/jQuery固定步长动画对比
阅读量:7223 次
发布时间:2019-06-29

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

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        }    }}*/复制代码

js固定动画

    
2.固定步长动画
复制代码

jQuery固定动画

    
3.固定步长动画
复制代码

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

你可能感兴趣的文章
防止视频资源被下载
查看>>
都是并发惹的祸
查看>>
eclipse实现JavaWeb项目 增量打包
查看>>
面试题系列一之 程序生命周期
查看>>
设计模式——观察者模式:气象监测应用
查看>>
NSUserDefaults简介及如何使用 NSUserDefaults 存储自定义对象
查看>>
IntelliJ IDEA搭建SpringBoot
查看>>
深入浅出iOS事件机制
查看>>
hadoop理解
查看>>
Oracle——18用户、角色和权限信息的视图总结
查看>>
WordPress 中的 Debug 模式(调试模式)
查看>>
node下使用express框架,ejs模板引擎
查看>>
搜索:文本的匹配算法
查看>>
Fedora 17 LibreOffice 办公套件的安装与汉化
查看>>
scrollview不充满屏幕的原因
查看>>
PHP单例模式
查看>>
解密敏捷自动化测试
查看>>
DelphiMVC拦截器介绍
查看>>
Spring Cloud构建微服务架构:分布式配置中心【Dalston版】
查看>>
iOS 11正式版终于来了!强力助攻小程序
查看>>