希望提供类似elementFromPoint功能的api
发布于 6 年前 作者 haoxiuying 8850 次浏览 来自 问答

- 需求的场景描述(希望解决的问题)

目前小程序已经提供了NodesRef.boundingClientRect这个API,可实现返回节点的布局位置查询,其功能类似于 DOM 的 getBoundingClientRect,但在开发中我们有时需要反过来,也就是判断在视口中的指定坐标或位置上有什么元素,这就需要用到DOM中的elementFromPoint功能,但微信小程序目前还无法通过相应的方法来实现。

__
__

- 希望提供的能力

希望能提供NodesRef.boundingClientRect的反操作方法类似elementFromPoint这个api

附:Dom的elementFromPoint()方法

elementFromPoint()

传递X和Y坐标(相对于视口),该方法选择在指定坐标的最上层和最里层的Element对象。如果指定的点在视口以外,elementFromPoint()返回null

最上层是指z-index最大的元素;最里层是指最里层的子元素

<body style=“margin:0”><div id=“test” style=“width: 100px;height: 100px;”>    <span id=“span1”>123</span></div><script>console.log(document.elementFromPoint(2,2).id); //span1</script>

elementFromPoint

语法:
oElement = document . elementFromPoint ( iX , iY )
参数:
iX :  必选项。整数(Integer)。单位:象素(Pixel)。定位横坐标偏移量。
iY :  必选项。整数(Integer)。单位:象素(Pixel)。定位纵坐标偏移量。

返回值:
oElement :  对象(Element)。返回获取的对象的引用。

说明:
根据横纵坐标值 iX 和 iY 获取对象 oElement 。 oElement 必须支持和响应鼠标事件。
提供的坐标是客户区坐标。客户区的左上角为 (0,0)。
当将此方法用于 Structured Graphics 或 Sprite 对象时,必须设置 MouseEventsEnabled 属性值为 1 。

2 回复

谢谢,为盼~

您好,您的建议我们已经收到,这边会进行评估,感谢您的建议

回到顶部