我有一个很好的小型React拖放库,适用于鼠标和触摸系统。对于触摸屏幕,它通过
然而,至少在IOS Safari(v.11.x)上,当您缩放显示时,位置:fixed的坐标系不再与窗口坐标系匹配。因此,被拖动的元素会显示在页面上错误的位置。
将缩放的浏览器窗口想象成一个小矩形视图,可以查看包含未缩放内容的较大矩形。位置:fixed的坐标系使用较大的矩形。窗口坐标系使用小矩形。
随着滚动,窗口以一种难以描述的方式在较大的矩形周围移动,导致位置固定的地方和浏览器窗口中的0,0之间的偏移量始终在变化。
如何获取浏览器窗口和“position: fixed”坐标系之间的偏移量?(然后我可以将该偏移量添加到被拖动元素的位置以使其正确定位。)
clientX
和clientY
(e.targetTouches [0] .clientX,e.targetTouches [0] .clientY
)获取触摸位置。它使用这些坐标来放置被拖动的元素,该元素具有position: fixed
。然而,至少在IOS Safari(v.11.x)上,当您缩放显示时,位置:fixed的坐标系不再与窗口坐标系匹配。因此,被拖动的元素会显示在页面上错误的位置。
将缩放的浏览器窗口想象成一个小矩形视图,可以查看包含未缩放内容的较大矩形。位置:fixed的坐标系使用较大的矩形。窗口坐标系使用小矩形。
随着滚动,窗口以一种难以描述的方式在较大的矩形周围移动,导致位置固定的地方和浏览器窗口中的0,0之间的偏移量始终在变化。
如何获取浏览器窗口和“position: fixed”坐标系之间的偏移量?(然后我可以将该偏移量添加到被拖动元素的位置以使其正确定位。)