2011-11-04 28 views
12

Làm cách nào tôi có thể định vị hộp thoại giao diện người dùng jquery ĐẶC ​​BIỆT, để nó chuyển đến vị trí không được xác định bởi chính giữa, trên cùng, v.v.Vị trí hộp thoại jquery UI

Cảm ơn, tôi đã cố gắng cụ thể.

+1

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

Trả lời

25

Sử dụng tùy chọn position: http://jqueryui.com/position/

Chỉ định nơi hộp thoại sẽ được hiển thị. Giá trị có thể có:

1) một chuỗi đại diện cho vị trí trong chế độ xem: 'center', 'left', 'right', 'top', 'bottom'.
2) mảng chứa tọa độ x, y trong pixel pixel từ góc trái, góc trên cùng của chế độ xem (ví dụ: [350,100])
3) mảng chứa x, y giá trị chuỗi vị trí (ví dụ: ['right' , 'trên cùng'] cho góc trên cùng bên phải).

Ví dụ: $(".selector").dialog("option", "position", [350,100]);

+3

Lưu ý rằng hình thức mảng này của vị trí hiện đang bị phản đối http://api.jqueryui.com/dialog/#option-position – Cheekysoft

7

Nếu bạn muốn sử dụng định vị tuyệt đối, tùy chọn của hộp thoại position là những gì bạn cần. Nếu bạn cần phải xác định vị trí tương đối so với các yếu tố khác, có một kỹ thuật đơn giản bạn sử dụng, jquery UI của $('selector').position(options); (xem tại địa chỉ: http://jqueryui.com/demos/position/)

Ví dụ:

// 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 Nhận xét của bạn dường như ngụ ý rằng biểu mẫu này không được chấp nhận. Điều này không sử dụng một mảng, mà là một tham số đối tượng, là kiểu tham số mong muốn cho phương thức vị trí. Bạn đúng khi nói rằng các biểu mẫu tham số mảng và chuỗi không được chấp nhận. –

17

Đây không phải là một câu trả lời chính xác cho câu hỏi của bạn , nhưng bạn có thể kết hợp 'trên cùng' với các giá trị pixel, như sau:

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

Điều này sẽ định vị hộp thoại nằm dọc theo trục X, cách 100 pixel từ trên xuống.

+0

Để bạn biết, thành phần ''top'' không làm gì trong ví dụ này. Khi bạn chuyển một mảng tới tùy chọn vị trí, nó đang mong đợi cặp phối hợp ['[x, y]'] (http://api.jqueryui.com/dialog/#option-position). Chuỗi không thể được phân tích cú pháp dưới dạng số nguyên, do đó vị trí ngang mặc định vẫn là trung tâm. Bạn có thể thay thế phần ''trên cùng' 'bằng bất kỳ chuỗi nào và nó vẫn hoạt động theo cùng một cách: [** Fiddle Demo **] (http://jsfiddle.net/KyleMit/978UW/) – KyleMit

+0

Cảm ơn bạn đã làm rõ. – camainc

Các vấn đề liên quan