美文网首页
DOM 窗口尺寸

DOM 窗口尺寸

作者: 败于化纤 | 来源:发表于2023-02-21 08:10 被阅读0次

    iframe用于创建内部窗口 .inner frame

    视口

    实际可见的内容可见区域。

    offset:偏移,位移 哦符赛的
    client:客户端 可兰因的
    scroll:滚动 死阔肉
    Fxxx off:滚

    1.offsetWidth

    定义:offsetWidth属性返回元素的宽度(没有单位),offsetWidth是测量包含元素的边框(border)、水平线上的内边距(padding)、竖直方向滚动条(scrollbar)(如果存在的话)、以及CSS设置的宽度(width)的值。
    不包含外边距
    (可视内容宽 = width+padding + border ):如果有滚动条
    语法:

    元素.offsetWidth
    

    返回值:返回元素的布局宽度(没有单位),offsetWidth是测量包含元素的边框(border)、水平线上的内边距(padding)、竖直方向滚动条(scrollbar)(如果存在的话)、以及CSS设置的宽度(width)的值。
    实例:

      <style>
            div{
                width: 200px;
                height: 200px;
                border: 50px solid black;
                padding: 50px;
                margin: 50px;
            }
        </style>
    </head>
    <body>
        <div></div>
        <script>
            console.log(document.querySelector("div").offsetWidth)//400
        </script>
    

    2.offsetHeight

    定义:返回元素的布局高度(没有单位),offsetWidth是测量包含元素的边框(border)、水平线上的内边距(padding)、竖直方向滚动条(scrollbar)(如果存在的话)、以及CSS设置的宽度(Height)的值。
    不包含外边距
    (可视内容高 = width+padding + border ):如果有滚动条
    语法:

    元素.offsetHieght
    

    返回值:返回元素的布局高度(没有单位),包括内容,边框和内边距,滚动条,但不包括外边距。
    实例:

    3.clientWidth | clientHieght

    定义:clientWidth属性返回元素的可视宽度(以像素为单位),包括填充,内边距,但不包括边框,外边距,滚动条。只读属性。
    (可视内容宽 = width+padding - 滚动条):如果有滚动条
    语法:

    元素.clientWidth
    

    返回值:属性返回元素的可视内容宽度 | 高度(以像素为单位),包括填充,内边距,但不包括边框,外边距,滚动条。只读属性。
    实例:

    <style>
            div{
                width: 200px;
                height: 200px;
                border: 50px solid black;
                padding: 50px;
                margin: 50px;
            }
        </style>
    </head>
    <body>
        <div></div>
        <script>
            console.log(document.querySelector("div").clientWidth)//300
        </script>
    

    4.scrollWidth || scrollHeight

    定义:用于查询元素的内容宽 || 内容高
    (全部宽度:可视宽(width+内边距)+不可视宽)不含滚动条
    (全部高度:实际高(Height+内边距)+不可视宽)不含滚动条

    • element.scrollWidth:返回元素的整体宽度,包括由于溢出而无法展示在网页的不可见部分。
    • element.scrollHeight :返回元素的整体高度,包括由于溢出而无法展示在网页的不可见部分。

    语法:

    元素.scrollWidth ||  scrollHeight
    

    返回值:
    实例:

     <style>
              div{
                width: 200px;
                height: 100px;
                border: 10px solid black;
                padding: 10px;
                margin: 50px;
                background-color: aquamarine;
                /* overflow: auto; */
            }
        </style>
    </head>
    <body>
        <div></div>
        <script>
            let div = document.querySelector("div")
            console.log(div.scrollWidth,div.scrollHeight)//220 120
        </script>
    

    innerWidth

    定义:返回视口宽,包括滚动条
    语法:

    元素.innerWidth
    

    返回值:返回视口宽,包括滚动条
    实例:

        <style>
            div{
                background-color: aquamarine;
                width: 800px;
                height: 2000px;
            }
        </style>
    </head>
    <body>
        <div>
        </div>
        <script>
             let v = window.innerWidth
            document.querySelector("div").innerHTML = `<h1>${v}</h1>`
        //    document.onclick= function(){
        //     document.querySelector("div").innerHTML = `<h1>${v}</h1>`
        //    }
           window.onresize = ()=>{
            let v = window.innerWidth//内部宽(包含滚动条)
            document.querySelector("div").innerHTML = `<h1>${v}</h1>`
           }
        </script>
    

    offsetLeft || offsetTop

    定义:
    用于查询定位元素的坐标
    offsetLeft:查询定为元素的水平坐标
    offsetTop:查询定位元素的垂直坐标

    语法:

    定位元素.offsetLeft
    定位元素.offsetTop 
    

    返回值:
    返回一个数字(单位是像素)

    getBoundingClientBox

    返回元素在视口中的

    查询元素尺寸

    Element.offsetWidth || offsetHeight:布局尺寸
    Element.clientHeight || clientWidth:可视内容宽度 视口尺寸
    Element.scrollHeight || scrollWidth:可视加不可视 内容高

    查询元素坐标(还有一个光标系统)

    在浏览器中有两种坐标系统

    视口坐标:以视口的左上角为坐标原点(0,0)的坐标系统

    文档坐标:以文档的左上角为坐标原点、

    查询视口坐标

    Element.getBoundingClientRect()

    定义: 用于查询元素的视口坐标,该函数返回一个矩形(DOMRect)对象,该对象有6个属性:top,lef,right,bottom,width,height;
    语法:

    元素.getBoundingClientRect()
    

    没有参数
    返回值:该函数返回一个矩形(DOMRect)对象,该对象有6个属性:top,lef,right,bottom,width,height;
    实例:

     <style>
            div{
                width: 100px;
                height: 100px;
                float: right;
                background-color: cadetblue;
            }
        </style>
    </head>
    <body>
        <div></div>
        <script>
            const div = document.querySelector("div")
            console.log(div.getBoundingClientRect());//DOMRect { x: 1812, y: 8, width: 100, height: 100, top: 8, right: 1912, bottom: 108, left: 1812 }
        </script>
    

    实例2.0:查询div的x和y坐标

        <style>
            *{
                margin: 0;
                padding: 0;
            }
            div{
                width: 100px;
                height: 100px;
                background-color: cadetblue;
            }
        </style>
    </head>
    <body>
        <div></div>
        <script>
            const div= document.querySelector("div")
            const obj = div.getBoundingClientRect()
            console.log(obj.x,obj.y)
        </script>
    

    查询元素文档坐标

    • 方法1:利用offsetLeft和offsetTop查询
    • 方法2:利用公式计算(文档坐标=视口坐标+文档滚动距离)window.scrollY+

    Element.offsetTop || Element.offsetLeft

    定义:
    是一个只读属性,用于查询元素(定位或不定位)相对于offsetParent的坐标
    offsetParent是什么

    • 他最近的定位父级。(1.必须是父级元素2.必须设置定位属性 3.必须是最近的)
    • body
      语法:
    非定位.offsetTop
    定位.Top
    

    返回值:返回没有单位的像素坐标
    实例:

    查询设置内容的滚动尺寸

    <nav class="md-nav" aria-label="查询设置内容的滚动尺寸">

    </nav>

    相关文章

      网友评论

          本文标题:DOM 窗口尺寸

          本文链接:https://www.haomeiwen.com/subject/cnqekdtx.html