- 需求的场景描述(希望解决的问题)
目前小程序已经提供了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 。