У меня есть элемент, расположенный на холсте konva, и я могу вычислить правильную позицию событий щелчка. Но когда я смещаю X или Y любого элемента, расчет координат щелчка смещается на ту же величину, на которую я смещаю X или Y.
Это код, который вычисляет правильные координаты щелчка ( из руководств Konva docs)
// this function will return pointer position relative to the passed node
function getRelativePointerPosition(node) {
var transform = node.getAbsoluteTransform().copy();
// to detect relative position we need to invert transform
transform.invert();
// get pointer (say mouse or touch) position
var pos = node.getStage().getPointerPosition();
// now we can find relative point
return transform.point(pos);
}
Итак, если я попытаюсь разместить изображение в центре холста следующим образом:
<Image
image={image}
onClick={addPoint}
onTap={addPoint}
width={imageInfo.targetWidth}
height={imageInfo.targetHeight}
offsetY={imageInfo.centerY}
y={centerY}
/>
Где centerY равно canvasHeight / 2, когда я нажимаю на изображении позиция щелчка - imageInfo.centerY пикселей вверх.