• 原生js获取宽高与jquery获取宽高的方法的关系


    说明:1、因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况。 
       2、以下所说的所有方法与属性所返回的值都是不带单位的。 
       3、为了方便说明,以下情况采用缩写表示: 
        obj -> 在原生JS中表示DOM对象;在JQuery中表示JQuery对象 
        Width -> obj.style.width 
        OffsetWidth -> obj.offsetWidth 
        $width -> obj.width() 
        $innerWidth -> obj.innerWidth() 
        $outerWidth -> obj.outerWidth() 
        padding -> 表示对象的padding-left和padding-right之和 
        border -> 表示对象的border-left-width和border-right-width之和 

    原生JS获取宽度的相关属性有 width和offsetWidth。width的获取方法是obj.style.width,只有当对象是通过内嵌方式设定宽度时才能获得,否则返回的是一个空字符串。offsetWidth获得的值跟JQuery中获得对象的outerWidth一样,offsetWidth是非标准的但却得到很好支持的属性。 

    JQuery获得宽度的方法有width()、innerWidth()、outerWidth()这三种方法。具体使用方式是:obj.width()、obj.innerWidth()、obj.outerWidth()。width()获得的是对象的内容宽度,innerWidth()获得的是对象的内容宽度与填充宽度的和,outerWidth()获得的是包括边框、填充宽度与内容宽度在内的宽度。 

    这五种方法之间的关系如下: 
    width = $width; 
    offsetWidth = border + padding +width; 
    $innerWidth = padding + width; 
    $outerWidth = border + padding +width; 

    这五种方法对firefox、chrome、opera、safari、ie6、ie7、ie8、ie9都兼容,只是存在着两种问题:1、width在没有设定的情况下,chrome在第一次打开页面时,所获取到的宽度全部都是错误的。第二次打开时,结果就跟firefox一致。2、ie6未设定宽高的情况下,不会出现滚动条。 

  • 相关阅读:
    人脸Pose检测:ASM、AAM、CLM总结
    AI:AI是什么?
    AI不与人为敌
    CMMI评估流程
    AI:恐怖谷理论的陷阱
    Christopher G. Atkeson 简介
    QtUI设计:设置控件透明
    QT设计UI:QT模式对话框打开文件
    SLAM:(编译ORB)fatal error LNK1181: 无法打开输入文件“libboost_mpi-vc110-mt-1_57.lib”
    error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译
  • 原文地址:https://www.cnblogs.com/ranzige/p/3554252.html
Copyright © 2020-2023  润新知