Digamos que tenemos dos div, uno interno y otro externo.
El div interno es responsable del zoom y la panorámica (realizado mediante transformaciones CSS, traducción y escala).
Ahora se pueden agregar nuevos divs al div interno arrastrando y soltando. Los eventos de caída son aceptados por el div externo
Ahora, durante el evento de caída obtienes la posición del clienteX, clienteY, ahora usando esto encuentras la posición de caída correcta en relación con la división interna.
aquí hay una posible solución (pero la posición final se ha desplazado cuando se hace zoom)
handleDrop = (e) => { const canvasContainerRect = outerDivBoundingRect() // const canvasRect = innerDivBoundingRect() let finalPosition = { x: (e.clientX - canvasContainerRect.left - translateX) / zoom, y: (e.clientY - canvasContainerRect.top - translateY) / zoom, } console.log("final: ", finalPosition) }
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3