我正在从侧边栏拖动占位符项(相对于窗口)并将其放到pannable / zoomable" stage"它使用CSS转换。
当被删除时,它应该被一个新元素替换,在视觉上说,在完全相同的位置,在平移/缩放"阶段" 中具有绝对定位的新元素。
我很接近,但是当比例为1时,计算的位置才正确,我无法以编程方式计算出如何计算比例。
的jsfiddle: http://jsfiddle.net/a4v2guvt/
如果缩小(鼠标滚轮)并将项目拖到舞台上,则很容易看到问题。
以下是我目前使用的内容:
$(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)
是将变换矩阵中使用的负数转换为正数的简洁方法,因为我不知道任何其他转换方式+/-脱离我的头顶。
答案 0 :(得分:0)
最后想出来了(不要问我怎么做!)
以下是可能遇到此问题的其他任何人的解决方案:
'top': (dropPosition.top - containerPosition.top) / currentScale,
'left': (dropPosition.left - containerPosition.left) / currentScale