2011-11-04 89 views
12

我怎麼能具體定位jQuery UI的對話,使之變爲非由中央,頂部定義的位置等位置jQuery UI的對話框

謝謝,我試圖儘可能具體更多鈔票。

+1

http://stackoverflow.com/questions/744554/jquery-ui-dialog-positioning – Dev

回答

25

使用position選項:http://jqueryui.com/position/

指定應顯示該對話框。可能的值:

1)表示位於視口中的位置的單個字符串:「中心」,「左」, 「右」,「頂」,「底」。
2)含有一個X的陣列,y座標中像素 對由左,視口的頂端角偏移(例如[350100])
3)含有x數組,y位置字符串值(例如 [「右」 ,'top']爲右上角)。

例如:$(".selector").dialog("option", "position", [350,100]);

+3

注意的位置這個陣列狀現在已經過時 http://api.jqueryui.com/dialog/#option-position – Cheekysoft

7

如果你想使用絕對定位,對話框的position選擇是你所需要的。如果需要相對於其他要素的位置,還有另一個簡單的技術使用和jQuery UI的$('selector').position(options);(在看到:http://jqueryui.com/demos/position/

例如:

// div to position against 
var $div = $('#someDiv'); 

// Open dialog (positioning won't work on hidden elements) 
$dialog.dialog('open'); 

// position newly opened dialog (using its parent container) below $div. 
$dialog.dialog('widget').position({ 
    my: "left top", 
    at: "left bottom", 
    of: $div 
}); 
+0

@Cheekysoft您的評論似乎暗示此表單已被棄用。這不是使用數組,而是使用對象參數,這是位置方法所需的參數類型。您說數組和字符串參數形式已被棄用是正確的。 –

17

這不是一個準確的回答你的問題的,但可以用像素值混合「頂部」,是這樣的:

$('#widget').dialog({ 
    position: ['top', 100] 
}); 

這將沿X軸,從頂部100點向下的像素爲中心的對話框定位。

+0

就這麼你知道,在這個例子中,「top」組件沒有做任何事情。當你將一個數組傳遞給位置選項時,它期待一個['[x,y]'座標對](http://api.jqueryui.com/dialog/#option-position)。該字符串不能被解析爲一個整數,所以默認的水平定位保持爲中心。您可以用任何字符串替換頂部的''top'部分,它仍然可以以相同的方式工作:[** Fiddle Demo **](http://jsfiddle.net/KyleMit/978UW/) – KyleMit

+0

感謝您的澄清。 – camainc