前言

DOM操作

元素的尺寸与位置

JavaScript中,设计元素的尺寸和位置的属性较多,这些属性可以帮助我们获取或者设置元素的大小、位置等信息,主要有 👇 几个属性(下述的描述均以*Width来说明):

  1. offsetWidthoffsetHeight

    offsetWidth = content + padding + border
    不包含margin

  2. clientWidthclientHeight

    clientWidth = content + padding
    不包含border与margin

  3. scrollWidthscrollHeight

    内容的总尺寸宽度,包括因滚动而未展示的元素的宽度,也就是整体滚动宽度!

  4. offsetLeftoffsetTop

    元素左外边距边缘到其最近的已定位父元素左内边距框边缘的距离

  5. scrollLeftscrollTop

    水平/垂直方向已滚动的像素值

  6. getBoundingClientRect()

    html节点的一个方法,而非属性,调用该方法将返回一个对象,该对象包含了toprightbottomleftwidthheight这些与位置相关的属性

这边整理了以下关于尺寸的关系图:
dom的尺寸关系图

🤔 但是有时候,好像挺多时候获取到的尺寸都是0,这个是什么情况呢?

👉 这是与浏览器的绘制元素的原理有关,因为浏览器绘制html节点的时候,都是先绘制父元素,然后才绘制子元素,假如父元素在不可见或者尺寸为0的情况下,其子元素获取到的尺寸以及位置一般都是0,因为父元素都没有足够的空间来分配给子组件,因此,子组件的尺寸在父组件没有确定下来的情况下,获取到的值都为0

本地存储

异步编程

avatar
Genglin Zheng
原来从事安卓开发,后转从事 WEB 开发,主要开发语言 java, javascript, 熟悉使用 vue2、vue3、typescript、nuxt2、nuxt3、tailwindcss、react、react-native、nodejs 等主流框架语言
Follow Me
公告
欢迎您阅读我的博客~