2013-10-22 93 views
0

我遇到可拖動的問題。當您開始拖動時,遊標的位置相對於窗口的[0,0]而不是可拖動元素的父代<div>進行測量。JQuery可拖動偏移量錯誤

例如,如果父容器偏移了margin-left:200px,當您嘗試拖拽一個坐在容器左邊框上的元素時,它將只在光標爲200像素時纔會開始移動到這個左邊框的右邊。

對於實際演示,請參閱(我不能上的jsfiddle複製此):Demo

我想這需要一些修改可拖動源。這對我來說有點複雜。

任何想法?

回答

1

你可以通過使用$(element).offsetParent()來獲得父母的偏移量。當父元素絕對定位時特別方便。 您可以編寫一個循環來遍歷所有父元素並複合它們的偏移量。

,僅供參考在啓用觸摸的設備上的演示不工作;)

更新 我又看了一下您的演示,(終於在PC上)。如果你刪除了div.container的'position:relative',那麼可拖動的按照預期工作(或者至少我認爲你期望它們表現爲:D)。

+0

我不完全確定如何在可拖動的上下文中實現這一點。 – FuriousD

+0

@FuriousD,我更新了我的答案,你能確認它是否有幫助嗎? –

+0

感謝您的幫助。我已經對draggable.js進行了一些修改,從一開始實際上導致了這個問題。 – FuriousD

0

我也有這個問題,並能夠解決它首先計算邊界框的偏移量左右窗口。接下來,我更新了包含x1,y1,x2,y2位置以反映邊界框的位置。