Я перетаскиваю элемент-заполнитель (относительно окна) с боковой панели и отбрасывая его на подкачку/масштабируемую «сцену», которая использует преобразования CSS.Как вычислить позицию для нового элемента внутри преобразованного контейнера
При отбрасывании его следует заменить новым элементом с абсолютным позиционированием внутри развернутой «сцены» в том же месте, визуально говоря.
Я близок, но рассчитанная позиция верна только в том случае, когда масштаб равен 1, и я не могу понять, как программно определить масштаб.
JSFiddle: http://jsfiddle.net/a4v2guvt/
Если уменьшать (MouseWheel) и перетащите элемент на сцену, это легко увидеть проблему.
Вот что я использую в настоящее время:
$(theNewItem).css({
'top': dropPosition.top + (currentY - (currentY * 2)),
'left': dropPosition.left + (currentX - (currentX * 2))
});`
Замечания по коду: dropPosition
является $.offset()
из перемещенного элемента (относительно окна) в данный момент он «упал "и currentY
и currentX
- это преобразованные значения x, y элемента контейнера. Я пытаюсь добавить новый элемент в, который на scale(1)
можно считать 0,0 относительно окна.
Примечание стороны:(currentY - (currentY * 2)
мой Дерпи способ преобразовать отрицательное число, используемое в преобразовании матрицы положительное число, так как я не знаю ни одной другой способ преобразования +/- с верхней части моей головы.
Можете ли вы опубликовать скрипку или обновить свой вопрос с сниппета ? Поэтому мы можем вам помочь. –
@MoshFeu добавил скрипку к оригинальному сообщению. См. Здесь: http://jsfiddle.net/a4v2guvt/ – Vertical3