前端:常用的获取元素位置与元素尺寸的属性与方法

属性/方法描述
clientWidth返回元素内容区的宽度(不包括滚动条、边框和外边距)。对于box-sizing: border-box的元素,包含内边距。
clientHeight返回元素内容区的高度(不包括滚动条、边框和外边距)。对于box-sizing: border-box的元素,包含内边距。
offsetWidth返回元素的总宽度,包括内边距和边框,但不包括外边距。
offsetHeight返回元素的总高度,包括内边距和边框,但不包括外边距。
scrollWidth返回元素的完整内容宽度,包括可能超出视口需要滚动才能看见的部分。
scrollHeight返回元素的完整内容高度,包括可能超出视口需要滚动才能看见的部分。
offsetLeft返回元素左边缘到其最近定位父元素左边缘的距离,包括元素的margin。
offsetTop返回元素顶部到其最近定位父元素顶部的距离,包括元素的margin。
getBoundingClientRect()返回一个对象,包含元素各边界相对于视口的位置(toprightbottomleft)以及元素的宽高(widthheight),考虑了滚动、变形和CSS转换的影响。
scrollTop返回元素自身的垂直滚动条位置。
scrollLeft返回元素自身的水平滚动条位置。
window.innerWidth返回浏览器视口内部的宽度,包括滚动条(但滚动条不计入宽度内)。
window.innerHeight返回浏览器视口内部的高度,包括滚动条(但滚动条不计入高度内)。
window.scrollY返回当前视口距离页面顶部的垂直滚动偏移量。等同于window.pageYOffset
window.scrollX返回当前视口距离页面左侧的水平滚动偏移量。等同于window.pageXOffset
window.screen.width返回浏览器窗口所在的整个屏幕的宽度。
window.screen.height返回浏览器窗口所在的整个屏幕的高度。
document.documentElement.clientWidth返回HTML文档元素在视口内的可视宽度,不包括滚动条。
document.documentElement.clientHeight返回HTML文档元素在视口内的可视高度,不包括滚动条

下面有一个简单的示例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>啦啦啦</title></head><body><div id="example" class="hidden-scrollbar"></div></body><script>const getDomInfos = () => {var exampleDiv = document.getElementById("example");//元素的内容区域宽度和高度console.log("clientWidth:", exampleDiv.clientWidth);console.log("clientHeight:", exampleDiv.clientHeight);//元素的内边距区域宽度和高度console.log("offsetWidth:", exampleDiv.offsetWidth);console.log("offsetHeight:", exampleDiv.offsetHeight);//元素的滚动区域宽度和高度console.log("scrollWidth:", exampleDiv.scrollWidth);console.log("scrollHeight:", exampleDiv.scrollHeight);//元素与父元素的距离console.log("offsetLeft:", exampleDiv.offsetLeft);console.log("offsetTop:", exampleDiv.offsetTop);//元素的边界矩形,值为一个 DOMRect 对象,具体为bottom, height, left, right, top, width, x, yconsole.log("getBoundingClientRect():",exampleDiv.getBoundingClientRect());//元素的滚动距离console.log("scrollTop:", exampleDiv.scrollTop);console.log("scrollLeft:", exampleDiv.scrollLeft);//视口的宽度和高度console.log("window.innerWidth:", window.innerWidth);console.log("window.innerHeight:", window.innerHeight);//滚动条的滚动距离console.log("window.scrollY:", window.scrollY);console.log("window.scrollX:", window.scrollX);//屏幕的宽度和高度console.log("window.screen.width:", window.screen.width);console.log("window.screen.height:", window.screen.height);//文档的宽度和高度console.log("document.documentElement.clientWidth:",document.documentElement.clientWidth);console.log("document.documentElement.clientHeight:",document.documentElement.clientHeight);};window.addEventListener("DOMContentLoaded", getDomInfos);</script><style>#example {position: relative; /* 设置为相对定位,方便观察offset属性 */width: 300px;height: 200px;padding: 20px;border: 5px solid black;box-sizing: border-box;overflow: auto;background-color: lightblue;}.hidden-scrollbar {/* 为了演示innerWidth和outerWidth的区别 */scrollbar-width: none; /* Firefox */-ms-overflow-style: none; /* Internet Explorer 10+ */overflow-x: hidden; /* 隐藏水平滚动条 */}</style>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/804102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式学习笔记 - 设计模式与范式 -行为型:7.责任链模式(下):框架中常用的过滤器、拦截器是如何实现的?

概述 上篇文章《6.责任链模式&#xff08;上&#xff09;&#xff1a;原理与实现》&#xff0c;学习了职责链模式的原理与实现&#xff0c;并且通过一个敏感词过滤框架的例子&#xff0c;展示了职责链模式的设计意图。本质上来说&#xff0c;它跟大部分设计模式一样&#xff0…

批量删除指定文件夹下xml中标注框

#!usr/bin/env python # -*- coding:utf-8 _*- """ @author:AI @file: delete_xml.py @time: 2024/04/10 """""" 在这个脚本中,remove_named_objects_from_xml 函数负责处理单个 XML 文件。它首先解析文件,然后遍历所有的 …

Python从0到100(十一):Python字典介绍及运用

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

10 spring-data-redis 中创建的 pipe 和 anon_inode 的 fd 来自于哪里?

前言 本文的问题 主要是 衍生自 spring-boot-acurator 定时检测 redis 集群导致 “IOException: Too many open files“ 对于这里 pipe 的使用, 也是很神奇, 因为 貌似没有用过这类 api 然后 这里调研一下, 然后 追根究底到最终, 是到了 jdk 的 c 代码的调用, 创建的 pipe …

51单片机之LED点阵屏

目录 1.LED点阵屏简介 2.配置LED点阵屏代码 1.LED点阵屏简介 LED点阵屏真的是遍布我们我们生活的每个角落&#xff0c;从街边的流动显示字的招牌到你的液晶显示屏&#xff0c;都是基于点阵屏的原理研究出来的。还有那个世界上最大的球状建筑物&#xff1a;MSG Sphere&#xff…

三极管结构难?——秒了

前边我们已经学完了PN结&#xff0c;二极管&#xff0c;在分析了二极管后&#xff0c;我们对这些东西有了一定深度的了解&#xff0c;但是只给我们一个二极管去研究&#xff0c;这玩意好像真的没啥大用&#xff0c;其实我们追求的是用半导体材料去代替电子管的放大作用&#xf…

网络安全(防火墙,IDS,IPS概述)

问题一:什么是防火墙,IDS,IPS? 防火墙是对IP:port的访问进行限制,对访问端口进行制定的策略去允许开放的访问,将不放开的端口进行拒绝访问,从而达到充当防DDOS的设备。主要是拒绝网络流量,阻断所有不希望出现的流程,禁止数据流量流通,达到安全防护的作用。如将一些恶…

tensorflow.js 使用 opencv.js 将人脸特征点网格绘制与姿态估计线绘制结合起来,以获得更高的帧数

系列文章目录 如何在前端项目中使用opencv.js | opencv.js入门如何使用tensorflow.js实现面部特征点检测tensorflow.js 如何从 public 路径加载人脸特征点检测模型tensorflow.js 如何使用opencv.js通过面部特征点估算脸部姿态并绘制示意图 文章目录 系列文章目录前言一、实现步…

Lecture 2~4 About Filter

文章目录 空间域上的滤波器- 线性滤波器盒状滤波器Box Filter锐化Sharpening相关运算 vs. 卷积运算 Correlation vs. Convolution - 非线性滤波器高斯滤波器Gaussian filter - 实际问题- 纹理texture 频域上的滤波器 滤波的应用- 模板匹配- 图像金字塔 空间域上的滤波器 图像…

Django的中间件

Django的中间件 【一】重点&#xff1a; django中间件是django的门户 请求来的时候需要经过中间件才能到达真正的django后端响应走的时候也需要经过中间件才能发送出去中间件按照顺序依次执行 ​ Django 中间件&#xff08;Middleware&#xff09;是 Django 框架提供的一种…

设计模式——代理模式12

代理模式给某对象提供一个代理对象&#xff0c;由代理对象来控制对原对象的引用。该模式经常出现在系统框架或相关组件中&#xff0c;如Spring框架如何解决循环依赖&#xff0c;在Mybatis 定义 Dao 层相关接口 不写实现 如何通过注解或者xml映射到对应到sql语句。下面介绍 静态…

再见 MybatisPlus,阿里推出新 ORM 框架更牛X

最近看到一个 ORM 框架 Fluent Mybatis 挺有意思的&#xff0c;整个设计理念非常符合工程师思维。 我对官方文档的部分内容进行了简单整理&#xff0c;通过这篇文章带你看看这个新晋 ORM 框架。 官方文档&#xff1a;https://gitee.com/fluent-mybatis/fluent-mybatis/wikis 提…

Nginx反向代理与Tomcat实现ssm项目前后端分离部署

Nginx nginx是一款http和支持反向代理的web服务器&#xff0c;以其优越的性能被广泛使用。以下是百度百科的介绍。 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.…

智慧园区水电能源监控管理系统

随着智慧城市的快速发展&#xff0c;智慧园区作为城市智能化的重要组成部分&#xff0c;其能源监控管理系统显得尤为关键。智慧园区水电能源监控管理系统&#xff0c;是利用先进的信息技术和自动控制技术&#xff0c;对园区内的水电能源使用进行实时监控、管理和优化的综合性智…

C++11 新特性:std::forward_list 前向列表

std::forward_list是 C11 引入的一个标准库容器&#xff0c;它实现了一个单向链表。 与其他序列容器&#xff08;如std::list、std::vector&#xff09;相比&#xff0c;std::forward_list更加轻量&#xff0c;因为它只维护到下一个元素的链接&#xff0c;而没有维护到上一个元…

美国34401A安捷伦数字万用表

181/2461/8938产品概述&#xff1a; 附加功能: 6 1/2位数分辨率10种测量功能:DC/交流电压、DC/交流电流、2线和4线电阻、二极管、连续性、频率、周期基本精度:0.0035% DC&#xff0c;0.06%交流1000 V最大电压输入&#xff0c;3 A最大电流输入每秒1000次读数512读取记忆 安捷…

Linux C++ 027-STL之deque容器

Linux C 027-STL之deque容器 本节关键字&#xff1a;Linux、C、deque 相关库函数&#xff1a;pubsh_back、begin、front、sort deque基本概念 功能&#xff1a;双端数组&#xff0c;可以对头端进行插入删除操作。 deque 与 vector 的区别&#xff1a; &#xff08;1&#x…

odoo中在聊天器中记录用户修改

在Odoo中&#xff0c;在聊天器&#xff08;或称为消息通讯工具&#xff09;中记录用户修改是一种常见的做法&#xff0c;它有助于追踪和记录用户与系统之间的交互&#xff0c;包括用户对数据的修改。这可以通过创建审计日志或者在消息通知中记录用户的操作来实现。下面将介绍如…

vue将html生成pdf并分页

jspdf html2canvas 此方案有很多的css兼容问题&#xff0c;比如虚线边框、svg、页数多了内容显示不全、部分浏览器兼容问题&#xff0c;光是解决这些问题就耗费了我不少岁月和精力 后面了解到新的技术方案&#xff1a; jspdf html-to-image npm install --save html-to-i…

Centos7 Python3安装

下载&#xff1a;CNPM Binaries Mirror https://cdn.npmmirror.com/binaries/python/3.11.6/Python-3.11.6.tgz 安装相关依赖 yum install zlib-devel bzip2-devel libffi-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 安装 tar -zx…