2013-02-25 79 views
5

這裏是一個簡短的demo。我想讓對話框可以拖動。它通過css水平居中以下方式:jQuery-UI可拖動:div不跟隨鼠標正確水平

div.dialog-container { 
    position: absolute; 
    left: 0; 
    right: 0; 
    margin: auto; 
} 

我的對話框包含一個標題和一個內容div。整個對話框將通過拖動標題來拖動。所以我用這樣的jQuery的UI .draggable()控件:

$("div.dialog-container").draggable({ 
    handle: "div.dialog-header" 
}); 

的問題是:拖動周圍的作品對話,但不是它的目的是的方式。在垂直方向上,對話框遵循鼠標完美但水平地跟隨鼠標太慢所以可以在拖動對話框的同時拖動(例如,單擊最右邊的標題並將對話框拖到右邊 )。 有趣的是:刪除「margin:auto;」修復了問題,但元素不再居中。以javascript爲中心的div是沒有選擇的。 你對如何解決這個問題有什麼想法嗎?

回答

4

如果你的對話框有一個固定的寬度,儘量

left: 50%; 
margin: auto; 
margin-left: -200px; 

DEMO

+0

您的演示不適合我。它仍然不正確地跟隨鼠標...? – tmuecksch 2013-02-25 10:24:25

+0

演示鏈接已損壞。修復... – Mennny 2013-02-25 10:27:08

2

LIVE DEMO

div.dialog-container { 
    height: 250px; 
    width: 400px; 
    border: 1px solid black; 
    position: absolute; 
    left: 50%;    /* center */ 
    margin-left:-200px; /* width/2 */ 
    top: 100px; 
} 
+1

謝謝。此解決方案工作。我會很快接受這個答案堆棧溢出讓我。 – tmuecksch 2013-02-25 10:21:15

+0

@tmuecksch不客氣!添加了2-3個修補程序演示 – 2013-02-25 10:21:39

+1

@roXon,我喜歡你做'LIVE DEMO'的方式 – Jashwant 2013-02-25 10:28:53