DOM中获取元素尺寸和位置常用的API

本文详细介绍了在网页开发中如何获取各种尺寸信息,包括浏览器窗口、元素尺寸及位置,以及滚动状态等。这些知识对于实现响应式设计、自适应布局和交互效果至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景

  1. 很多时候,网页需要在不同尺寸大小的设备上显示出相同的效果,这就得用到自适应布局。用的比较多的是相对尺寸rem,这个时候需要获取页面的宽度来计算当前设备的rem对应的像素值。
  2. 在页面的交互过程中,也经常需要获取页面的状态来实时动态调整。比如懒加载需要了解相应元素在页面中的位置,更具操作调整元素的尺寸,位置等等

常用获取方法

  • window.innerWidth, window.innerHeight 获取浏览器整体窗口的宽高
  • client系列
    • clientTop: 获取元素border-top的宽度
    • clientLeft:获取元素border-left的宽度
    • clientWidth: 获取元素的宽度,不包含border
    • clientHeight:获取元素的高度,不包含border
    • getBoundingClientRect(): 获取与元素尺寸信息有关的对象, 记住这个API,特别好用!!! 配合window.innerHeight,onscroll可以方便的实现lazy load
      • top bottom: 获取元素上下边(不考虑margin)到浏览器窗口上边的距离数值
      • left right: 获取元素左右边(不考虑margin)到浏览器窗口左边的距离数值
      • width height: 元素的宽度和高度(包含border)
      • x y : 或元素左顶点到窗口左边和上边的距离(不考虑margin) 这个属性兼容性不好,不用
  • offset系列
    • offsetParent:获取元素的最近position不是static的祖先元素
    • offsetLeft: 获取元素(包含border)相对于最近position不是static的祖先元素的左边距离(不包含border,包含padding)
    • offsetTop: 获取元素(包含border)相对于最近position不是static的祖先元素的上边距离(不包含border,包含padding)
    • offsetWidth: 获取元素的宽度,包含border
    • offsetHeight: 后去元素的高度,包含border
  • scroll系列
    • scrollLeft: 获取左侧卷入不可见区域的宽度
    • scrollTop: 获取上侧卷入不可见的区域
    • scrollWidth: 获取的宽度为(内容实际宽度包括卷入的区域+padding部分)与(元素宽度+padding部分)
    • scrollHeight: 获取的宽度为(内容实际高度包括卷入的区域+padding部分)与(元素高度+padding部分)
    • window.scrollBy(x,y): 窗口相对滚动函数
    • window.scrollTo(x,y): 窗口绝对滚动函数

转载于:https://www.cnblogs.com/ykli/p/9681299.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值