热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jquery作者JohnResig自己封装的常用函数

获取元素的样式值。functiongetStyle(elem,name){if(elem.style[name]){returnelem.style[name];

//获取元素的样式值。
function getStyle(elem,name){
    if(elem.style[name]){
        return elem.style[name];
        }else if(elem.currentStyle){
            return elem.currentStyle[name];
            }else if(document.defaultView&&document.defaultView.getComputedStyle){
                name=name.replace(/([A-Z])/g,”-$1″);
                name=name.toLowerCase();
                var s=document.defaultView.getComputedStyle(elem,”");
                return s&&s.getPropertyValue(name);
                }else{
                    return null
                    }
    }
//获取元素相对于这个页面的x和y坐标。    
function pageX(elem){
    return elem.offsetParent?(elem.offsetLeft+pageX(elem.offsetParent)):elem.offsetLeft;
        }
function pageY(elem){
    return elem.offsetParent?(elem.offsetTop+pageY(elem.offsetParent)):elem.offsetTop;
        }
//获取元素相对于父元素的x和y坐标。        
function parentX(elem){
    return elem.parentNode==elem.offsetParent?elem.offsetLeft:pageX(elem)-pageX(elem.parentNode);
    }
function parentY(elem){
    return elem.parentNode==elem.offsetParent?elem.offsetTop:pageY(elem)-pageY(elem.parentNode);
    }
//获取使用css定位的元素的x和y坐标。
function posX(elem){
    return parseInt(getStyle(elem,”left”));
    }    
function posY(elem){
    return parseInt(getStyle(elem,”top”));
    }
//设置元素位置。    
function setX(elem,pos){
    elem.style.left=pos+”px”;
    }    
function setY(elem,pos){
    elem.style.top=pos+”px”;
    }
//增加元素X和y坐标。    
function addX(elem,pos){
    set(elem,(posX(elem)+pos));
    }
function addY(elem,pos){
    set(elem,(posY(elem)+pos));
    }
//获取元素使用css控制大小的高度和宽度    
function getHeight(elem){
    return parseInt(getStyle(elem,”height”));
    }
function getWidth(elem){
    return parseInt(getStyle(elem,”width”));
    }
//获取元素可能,完整的高度和宽度
function getFullHeight(elem){
    if(getStyle(elem,”display”)!=”none”){
        return getHeight(elem)||elem.offsetHeight;
        }else{
        var old=resetCss(elem,{display:”block”,visibility:”hidden”,position:”absolute”});
        var h=elem.clientHeight||getHeight(elem);
        restoreCss(elem,old);
        return h;
        }
    }
function getFullWidth(elem){
    if(getStyle(elem,”display”)!=”none”){
        return getWidth(elem)||elem.offsetWidth;
        }else{
        var old=resetCss(elem,{display:”block”,visibility:”hidden”,position:”absolute”});
        var w=elem.clientWidth||getWidth(elem);
        restoreCss(elem,old);
        return w;
        }
    }
//设置css,并保存旧的css
function resetCss(elem,prop){
    var old={};
    for(var i in prop){
        old[i]=elem.style[i];
        elem.style[i]=prop[i];
        }
        return old;
    }
function restoreCss(elem,prop){
    for(var i in prop){
        elem.style[i]=prop[i];
        }
    }
//显示和隐藏
function show(elem){
    elem.style.display=elem.$oldDisplay||” “;
    }
function hide(elem){
var curDisplay=getStyle(elem,”display”);
if(curDisplay!=”none”){
         elem.$oldDisplay=curDisplay;
    elem.style.display=”none”;
       }
    }
//设置透明度    
function setOpacity(elem,num){
    if(elem.filters){
        elem.style.filter=”alpha(opacity=”+num+”)”;
        }else{
            elem.style.opacity=num/100;
            }
    }
//滑动    
function slideDown(elem){
    var h=getFullHeight(elem);
    elem.style.|window.event;
    return e.pageX||e.clientX+document.body.scrollLeft;
    }
function getY(e){
    e=e||window.event;
    return e.pageY||e.clientY+document.body.scrollTop;
    }
//获取鼠标光标相对于当前元素的位置。
function getElementX(e){
    return (e&&e.layerX)||window.event.offsetX;
    }
function getElementY(e){
    return (e&&e.layerY)||window.event.offsetY;
    }
//获取页面的高度和宽度
function getPageHeight(){
    var de=document.documentElement;
    return document.body.scrollHeight||(de&&de.scrollHeight);
    }
function getPageWidth(){
    var de=document.documentElement;
    return document.body.scrollWidth||(de&&de.scrollWidth);
    }
//获取滚动条的位置。
function scrollX(){
    var de=document.documentElement;
    return self.pageXOffset||(de&&de.scrollLeft)||document.body.scrollLeft;
    }
function scrollY(){
    var de=document.documentElement;
    return self.pageYOffset||(de&&de.scrollTop)||document.body.scrollTop;
    }
//获取视口的高度和宽度。    
function windowHeight() {
    var de = document.documentElement;
    return self.innerHeight||(de && de.offsetHeight)||document.body.offsetHeight;
}
function windowWidth() {
    var de = document.documentElement;
    return self.innerWidth||( de && de.offsetWidth )||document.body.offsetWidth;
}

文章出自Corrie's Eye,原文查看Jquery作者John Resig自己封装的常用函数

推荐阅读
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
author-avatar
仇顺嵐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有