使用 jQuery UI 拖动旋转和绝对定位的 div



当我尝试使用 jQuery UI 可拖动拖动的绝对定位和旋转的div(带有 css3 transform: rotate(45deg))时,似乎 jQuery 不知道旋转的div 的新原点在哪里。因此,当您开始拖动时,div 会立即移动几个像素。

这是一个jsFiddle,所以你可以自己看看:http://jsfiddle.net/k7g7R/4/(通过单击它来旋转div,然后拖动它)。

请注意,当可拖动的div 处于相对位置时,它工作得很好。

有谁知道发生了什么,以及我该如何解决这个问题?

可能与 jQuery offset() 有关,它在 css3 转换后是错误的:http://bugs.jqueryui.com/ticket/6844

我解决这个问题的方法是在你正在旋转的对象周围放一个包装器,并使该包装器可拖动。

<div id="container">
    <div id="wrap">
        <div id="object" style="left: 90px; top: 90px;">Click to rotate, and drag</div>
    </div>
</div>

查看更新的小提琴:http://jsfiddle.net/k7g7R/128/(更新链接,因为缺少jQueryRotate)

最新更新