«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Можете ли вы решить эту проблему?

Можете ли вы решить эту проблему?

Опубликовано 26 сентября 2024 г.
Просматривать:353

Can you solve this problem?

Предположим, у нас есть два элемента div: один внутренний и внешний.

Внутренний элемент div отвечает за масштабирование и панорамирование (выполняется с помощью CSS-преобразований, перевода и масштабирования).

Теперь новые элементы div можно добавлять во внутренний блок путем перетаскивания. События drop принимаются внешним div

Теперь во время события перетаскивания вы получаете позицию clientX, clientY, теперь используя это, найдите правильную позицию перетаскивания относительно внутреннего элемента div.

вот возможное решение (но при увеличении конечное положение смещается)

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)
}
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/paul_freeman/can-you-solve-this-problem-e22?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3