【问题标题】:How to check if event clientx, clienty is present within getBoundingClientRect?如何检查事件clientx,clienty是否存在于getBoundingClientRect中?
【发布时间】:2019-07-09 06:06:41
【问题描述】:

我有一个来自 mouseup 事件的 xy 对象,我想知道 xy 是否存在于视口中元素的 boundingClientRect 中。我能够从 getBoundingClientRect 方法获取元素的左、右、上、下值。我想知道 xy 是否在元素 rect 内。

【问题讨论】:

  • "xy 对象"?你是说坐标吗?
  • 是的。 { xy: { x: 123, y: 234 } }
  • getBoundingClientRect 不完全提供包含{x: n, y: n} 对象的xy 属性
  • @AbanaClara :是的,我有一个独立于事件的 xy 对象。想要检查坐标是否在元素的矩形区域内
  • xy.xcR.leftcR.right 进行比较,将xy.ycR.topcR.bottom 进行比较。您可能还需要将坐标调整到与客户端 rect 相同的 offsetParent

标签: javascript dom element viewport getboundingclientrect


【解决方案1】:

听起来您在谈论鼠标事件的clientXclientY 属性。如果正确,则点和矩形相对于同一个坐标区域,以下为真:

如果x 介于leftright 之间,而y 介于bottomtop 之间,则该点在框中。

【讨论】:

  • 谢谢。没有来自 javascript 的 api?如果是这样,这似乎是唯一的选择。
  • 不,只是数学:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 2020-12-12
  • 2010-09-16
相关资源
最近更新 更多