• 前端中与宽高有关的属性


    前端中与宽高有关的属性

    一、window对象

    (一)window.innerHeight

    • window.innerHeight ——浏览器窗口的视口(viewport)高度
      • 只读,且没有默认值
      • 包含水平滚动条本身高度
    • window.innerWidth ——浏览器窗口的视口(viewport)宽度
      • 只读,且没有默认值
      • 包含垂直滚动条本身宽度

    (二)window.outerHeight

    • window.outerHeight ——整个浏览器窗口的高度
      • 包括任务栏等在内的整个浏览器窗体
    • window.outerWidth——整个浏览器窗口的宽度
      • 包括任务栏等在内

    innerHeight vs outerHeight illustration

    (三)window.pageXOffset

    • window.pageXOffset——表示页面滚动的像素值(水平方向)
      • ``window.scrollX` 的别名
    • window.pageYOffset——表示页面滚动的像素值(垂直方向)
      • window.scrollY 的别名

    (四)window.scrollX

    • window.scrollX——返回文档/页面水平方向滚动的像素值
    • window.scrollY——返回文档/页面垂直方向滚动的像素值

    二、screen对象

    (一)screen.availWidth

    • screen.availWidth——返回浏览器窗口可占用的水平宽度

    • screen.availHeight——返回浏览器窗口可占用的垂直空间

      • 不包含屏幕状态框
        screen.height //864
        screen.availHeight //824
    

    (二)screen.width

    • screen.width——返回屏幕的宽度
    • screen.height——返回屏幕的高度

    三、document对象

    (一)document.elementFromPoint()

    • document.elementFromPoint()—— 函数返还在特定坐标点下的HTML元素数组
      var elements = document.elementsFromPoint(x, y);
    

    (二)Element.getBoundingClientRect()

    • Element.getBoundingClientRect()——返回元素的大小及其相对于视口的位置
      #box {
          background-color: rgb(105, 221, 241);
           200px;
          height: 200px;
          padding: 20px;
          border: 10px solid rgb(152, 238, 149);
          margin: 20px;
        }
    
      console.log(box.getBoundingClientRect());
      // {
      //   x: 20;
      //   y: 20;
      //    260;
      //   height: 260;
      //   top: 20;
      //   right: 280;
      //   bottom: 280;
      //   left: 20;
      // }
    

    四、元素相关的属性

    (一)element.clientLeft

    • element.clientLeft——表示的是一个元素左边框的宽度
      • 只读的
      • 内容溢出导致出现垂直滚动条,需要包含滚动条的宽度
      • 不包括左外边距和左内边距
    • element.clientTop——表示的是一个元素顶部边框的宽度
      • 只读的
      • 不包括顶部外边距或内边距

    (二)element.clientWidth

    • element.clientWidth——表示元素内容区域的宽度

      • 包括内边距 padding
      • 不包括边框 border、外边距 margin 和垂直滚动条
    • element.clientHeight——表示元素内容区域的高度

      • 包括内边距 padding
      • 不包括边框 border、外边距 margin 和垂直滚动条

      Image:Dimensions-client.png

    (三)element.offsetLeft

    • element.offsetLeft——表示相对于最近的祖先定位元素的左边界偏移量
      • 只读属性
      • 对块级元素来说,offsetTopoffsetLeftoffsetWidthoffsetHeight 描述了元素相对于 offsetParent 的边界框
    • element.offsetTop——表示相对于最近的祖先定位元素的顶部边界偏移量

    (四)element.offsetWidth

    • element.offsetWidth——返回一个元素的布局宽度
      • 只读属性
      • 包含元素的 contentpaddingborder以及竖直方向滚动条
    • element.offsetHeight——返回一个元素的布局高度

    Image:Dimensions-offset.png

    (五)element.scrollWidth

    • element.scrollWidth——表示元素内容的全部宽度
      • 只读属性
      • 包括由于overflow溢出而在屏幕上不可见的内容
    • element.scrollHeight——表示元素内容的全部高度
      • 包括由于overflow溢出而在屏幕上不可见的内容

    (六)element.scrollLeft

    • element.scrollLeft——可以读取或设置元素滚动条到元素左边的距离
      • scrollLeft设置为0时,水平滚动条在最左边
    • element.scrollTop——可以获取或设置一个元素的内容垂直滚动的像素数
      • 元素的内容没有产生垂直方向的滚动条, scrollTop 值为0

    (七)element.scrollTo(x, y)

    • element.scrollTo()——可以使界面滚动到给定元素的指定坐标位置

      • 滚动元素内部的滚动条
        element.scrollTo({
          top: 100,
          left: 100,
          behavior: 'smooth'
        });
    
    • element.scrollBy()——可以使元素滚动一段特定距离

    五、鼠标相关属性

    (一)clientX/clientY

    • MouseEvent.clientX ——鼠标指针相对于内部窗口(viewport)的左偏移量
      • 不包括浏览器任务栏
    • MouseEvent.clientY ——鼠标指针相对于内部窗口(viewport)的顶部偏移量

    (二)offsetX/offsetY

    • MouseEvent.offsetX ——鼠标指针相对于目标节点内边位置(padding)的X坐标
      • 点击元素border左上角,offsetX为负值的border-left-width
    • MouseEvent.offsetY ——鼠标指针相对于目标节点内边位置的Y坐标

    (三)pageX/pageY

    • MouseEvent.pageX——鼠标指针相对于整个文档的X坐标
      • 鼠标相对于document的坐标,其会随着页面滚动而改变
    • MouseEvent.pageY——鼠标指针相对于整个文档的Y坐标

    (四)screenX/screenY

    • screenX——鼠标指针相对于全局(屏幕)的X坐标
    • screenY——鼠标指针相对于全局(屏幕)的Y坐标

    (五)x/y

    • MouseEvent.x ——MouseEvent.clientX的别名
    • MouseEvent.y——MouseEvent.clientY的别名

    (六)layerX/layerY

    • MouseEvent.layerX ——其获取的是触发点相对于被点击元素的距离
      • 数值与offsetX/offsetY相同
  • 相关阅读:
    Golang---反射(reflect)
    golang--交替打印一个数组中的元素
    Golang---基本类型(interface)
    利用random5 生成 random7
    Golang---基本类型(map)
    Golang---基本类型(slice)
    Golang---基本类型(string)
    二维码扫码登录原理
    Golang---内存逃逸
    关于我
  • 原文地址:https://www.cnblogs.com/zengbin13/p/12975296.html
Copyright © 2020-2023  润新知