检索 HTML 元素的位置 (X,Y)

2024-01-30

我想知道如何获取 HTML 元素的 X 和 Y 位置,例如img and div在 JavaScript 中。


正确的方法是使用element.getBoundingClientRect() https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect:

var rect = element.getBoundingClientRect();
console.log(rect.top, rect.right, rect.bottom, rect.left);

只要您可能关心,Internet Explorer 就支持这一点,并且它最终在CSSOM 视图 http://www.w3.org/TR/cssom-view/#the-getclientrects-and-getboundingclientrect-methods。所有其他浏览器都采用了它很久以前 http://www.quirksmode.org/dom/w3c_cssom.html#t21.

某些浏览器还返回高度和宽度属性,尽管这是非标准的。如果您担心旧版浏览器的兼容性,请检查此答案的修订版以获取优化的降级实现。

返回的值element.getBoundingClientRect()是相对于视口的。如果您需要相对于另一个元素的它,只需从另一个矩形中减去一个矩形即可:

var bodyRect = document.body.getBoundingClientRect(),
    elemRect = element.getBoundingClientRect(),
    offset   = elemRect.top - bodyRect.top;

alert('Element is ' + offset + ' vertical pixels from <body>');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检索 HTML 元素的位置 (X,Y) 的相关文章

  • http和https在编程中有什么区别[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只知道 s 代表 安全 用户永远不
  • 使用 IE9、10、11 的 CSS 将比例打印到 50% 等百分比

    Zoom css 属性不适用于 IE9 10 11 观察到打印预览 UI 令人不安 默认比例为 缩小以适合 当我将此比例从 缩小 更改为适合 50 时 页面显示正常 打印预览 任何人都可以帮助我如何使用 CSS 代码将比例设置为 50 为页
  • 如何按时间间隔翻转div

    您好 请看这个脚本并告诉我如何按时间间隔翻转 A B 和 C div 我希望A先翻转然后停止 B接下来翻转并停止 然后C然后再次回到A B和C 就像循环一样 然后重新开始 这在 CSS3 中可能吗 在此代码中 所有 div 同时翻转 HOL
  • 什么可能导致 Firefox 中出现此 HTML/CSS 渲染问题?

    款式 h2 color 71D0FF font size 11px font weight bold margin 0px 0px 5px 0px a box color FFFFFF important cursor pointer di
  • 对使用“new”创建的数组上“map”的行为感到困惑[重复]

    这个问题在这里已经有答案了 我对结果感到困惑mapping 使用创建的数组new function returnsFourteen return 14 var a new Array 4 gt undefined x 4 in Chrome
  • 我应该如何实现将状态保存到 localStorage?

    CODE var React require react var Recipe require Recipe jsx var AddRecipe require AddRecipe jsx var EditRecipe require Ed
  • 使用 Javascript/Node.js 在代码内执行 mongoimport

    node js javascript 中是否有任何库可供个人使用mongoimport在代码中 据我了解 mongoimport 有点像 exe 您必须先执行它 然后才能使用其文本输入环境 是否可以在我的代码中执行 mongoimport
  • 在 Chrome 开发者工具中禁用调试器语句

    我正在尝试对恶意 JavaScript 进行逆向工程 当我最初加载侧面时 会注入 JS 代码 其中包括 debugger 语句并将断点注入我的 chrome 开发人员控制台 通过stackoverflow阅读 禁用所有断点does not帮
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • CSS 选择器嵌套

    是否可以在选择器中嵌套选择器 我有很多类似这样的样式 header h1 header img header form 我想压缩它们 使它们看起来像这样 header h1 img form 以提高可读性 这在普通的旧 CSS 中可能吗 不
  • 为什么我不能同时使用背景图像和颜色?

    我想做的是展示两者background color and background image 这样我的一半div将覆盖右侧的阴影背景图像 而左侧的另一部分将覆盖背景颜色 但是当我使用background image 颜色消失 完全可以使用颜
  • 在“onClick”上切换 DIV 高度

    我想切换分区的高度 我尝试过将 animate 与 if else 语句一起使用 但它只会反弹 我现在使用的代码将隐藏我的分区而不是切换高度 点击时会触发 document ready function content1 toggle fu
  • Sphinx内联代码高亮

    我使用 Sphinx 制作一个包含代码示例的网站 我成功地使用了 code block获取语 法高亮的指令 但我无法使用此代码获得内联语法突出显示 role bash code language bash Test inline bash
  • 居中

    我的问题 http i56 tinypic com ff3jmo png http i56 tinypic com ff3jmo png 项目符号点未对齐 我要做的只是 text align center ing ul 所在的类 我可以对齐
  • Javascript等待/异步执行顺序

    所以我试图把我的头脑集中在 Promise await async 上 我不明白为什么当 go 执行时 带有 finished 的警报会紧随 console log coffee 之后 当所有函数都使用等待 承诺时 为什么它只等待 getC
  • 伪元素的元素类型是什么?

  • 根据文本内容从 jquery 对象中过滤元素

    我正在尝试使用contains带有 this 关键字 但它给出了错误 JS function var check ul find li filter function return this contains two css color r
  • Array.of 与“[ ]”。何时使用 Array.of 而不是“[ ]”?

    当我发现时我正在读一些书Array of https developer mozilla org en docs Web JavaScript Reference Global Objects Array of 根据 MDN Array o
  • Html5画布最热门的任意形状

    我正在尝试开发可以在画布中渲染图像和文本的程序 我尝试处理画布中图像的点击 但它适用于可矩形图像 我的问题 您是否知道处理单击画布中图像的可见部分 非透明部分 的解决方案或框架 我正在寻找 ActionScript hitTestObjec
  • 在 Firestore 文本字段中存储文本文件并删除换行符

    我正在尝试将 CSV 文件存储在 Cloud Firestore 内的文本字段中 然而 Firestore 正在删除所有换行符并将整个 CSV 文件存储为一行 这Firestore 数据类型文档 https firebase google

随机推荐

  • 如何在 ggplot 中创建气泡网格图?

    I want to create bubble grid charts with ggplot somthing like this 我在网上找不到任何代码或示例 Thanks Using geom point具有离散的 x 和 y 尺度将
  • Python pandas 相当于 R groupby mutate

    因此 在 R 中 当我有一个由 4 列组成的数据框时 将其称为df我想计算一个组的和积之比 我可以用这样的方式 generate data df data frame a c 1 1 0 1 0 b c 1 0 0 1 0 c c 10 5
  • 我在 Ubuntu 14.04 中使用 codeigniter 出现 URL not found 问题错误

    我已将我的 codeigniter 项目与 Ubuntu 14 04 集成 在默认控制器 登录控制器 之后 它给了我 url not found 错误 请找到以下 htaccess 文件
  • Safari xhr (AJAX) 跨域重定向请求失败

    如何重现问题 使用 Safari 向服务器发出 AJAX 请求 让服务器响应 302 到不同的域 如果这些条件之一是not遇见了 就可以了 使用不同的浏览器 它可以工作 让服务器重定向到同一域 它可以工作 Load function in
  • 如何在 Maven 中关闭 findbugs“冗余空检查”?

    我找不到报告 冗余空检查 RCN REDUNDANT NULLCHECK OF NONNULL VALUE 的检测器的名称 有人知道它是什么吗 谷歌搜索只给了我大量的项目报告 自从我使用 JetBrains 以来 我遇到了很多错误 NotN
  • Objective-C:声明私有变量的不同方式。他们之间有什么区别吗?

    我想到了声明私有变量的不同方法 我想知道它们之间是否有任何差异 第一种方式 In h file interface DataExtract NSObject private double test 第二种方式 In m file test
  • 我应该使用 WebMatrix 构建一个真实的网站吗?

    我已经阅读了数百篇文章和博客文章 这些文章和博客文章都说 WebMatrix 只适合初学者等 我的问题是 为什么我不应该使用 WebMatrix 创建一个真实的工作网站 比如一个轻量级的问答网站 使用此工具 我们可以创建网站所需的任何内容
  • 使用 lxml 向现有元素添加属性、删除元素等

    我使用以下方法解析 XML from lxml import etree tree etree parse test xml etree XMLParser 现在我想处理已解析的 XML 我在删除具有命名空间的元素或仅删除一般元素时遇到问题
  • ConcurrentHashMap 有什么缺点吗?

    我需要一个可从多个线程访问的 HashMap 有两个简单的选项 使用普通的 HashMap 并在其上同步 或者使用 ConcurrentHashMap 由于 ConcurrentHashMap 不会阻止读取操作 因此它似乎更适合我的需求 几
  • 使用 jQuery get(0) 索引暂停和播放多个 HTML5 视频?

    我有一个包含多个视频的页面 人们可以单击缩略图来播放每个视频 问题是 对于超过 2 个视频 单击第三个缩略图不会暂停第二个视频 因此我会同时播放 2 个视频 我也在使用fadeOut 切换每个视频的可见性 无论视频数量多少 这都可以正常工作
  • Postman 的 Chrome 拦截器是否仍可与 Postman 的独立版本一起使用?

    我之前使用过 Postman Chrome 的扩展以及邮递员拦截器扩展 https chrome google com webstore detail postman interceptor aicmkgpgakddgnaphhhpliif
  • python 中的降噪算法不起作用

    我一直在尝试使用noisereduce pypi 算法来减少音频文件的噪音 但它给了我一个错误 Traceback most recent call last File C Users Seif Koretum Desktop noise
  • 谁在 BPF 中创建地图

    看完之后man bpf以及其他一些文档来源 我的印象是map只能由用户进程创建 然而下面这个小程序似乎神奇地 create bpf map struct bpf map def SEC maps my map type BPF MAP TY
  • Docker compose 运行yarn install

    运行该步骤时运行纱线安装在 docker compose build 命令期间的 Dockerfile 中 我得到 1 4 正在解析包 2 4 正在获取包 信息 电子邮件受保护 cdn cgi l email protection 平台 l
  • 在终端中使用 cURL 发布数组

    我正在尝试为应用程序构建网络服务 因此数据存储在我拥有的在线数据库中 我目前正在构建 php 文档 我很好奇如何才能POST an array using cURL in the 终端 Mac 应用程序 您会看到 应用程序将向 Web 服务
  • Firestore - 按降序排序

    在我的 Firestore 数据库中 我有字段索引 no 数据类型是字符串 但数据是数字 如 1 2 3 等 collectionReference orderBy indexNo Query Direction DESCENDING 到9
  • OpenSSL 作为 CA,无需触及 certs/crl/index/etc 环境

    我认为我有正确的 OpenSSL 命令来签署证书 但我陷入了困境 并且我发现的教程使用了不同的参数格式 我使用的是 OpenSSL 0 9 8o 01 Jun 2010 openssl ca cert cert pem keyfile ke
  • Azure DocumentDB 性能缓慢

    我目前面临 Azure DocumentDB 的响应时间相当慢 第一次尝试 集合中有 31 个对象 我将获取这些对象并将其返回给调用者 我正在使用的代码是这样的 public async Task
  • Clojure 中的原子文件替换

    我有一个可以写入更新磁盘文件的应用程序 但我想尽可能确保文件的先前版本不会损坏 当然 更新文件最直接的方法就是简单地编写 spit myfile txt mystring 但是 如果 PC 或 java 进程 在写入过程中死机 则有很小的机
  • 检索 HTML 元素的位置 (X,Y)

    我想知道如何获取 HTML 元素的 X 和 Y 位置 例如img and div在 JavaScript 中 正确的方法是使用element getBoundingClientRect https developer mozilla org