2012-06-27 18 views
26

Tôi có hộp thoại được thực hiện bằng cuộc gọi ajax. Tôi muốn giới hạn max-height của thoại và cũng cho phép nó được cuộn thể nếu điều này max-height bị vượt qua. Mã dưới đây thực hiện chính xác những gì tôi muốn.Định vị hộp thoại Giao diện người dùng jQuery: điều chỉnh vị trí trên cùng 20px -

Bắt là tôi không thể di chuyển đầu của hộp thoại từ vị trí trên cùng. Tôi có thể di chuyển nó sang trái và phải. Tôi không thể sử dụng trung tâm hoặc là hộp thoại được hiển thị trong cửa sổ có thể cuộn lớn. Nếu tôi sử dụng firebug tôi có thể điều chỉnh các tài sản hàng đầu nhưng không thể tìm thấy nơi nó đang được thiết lập để không.

$("#your-dialog-id").dialog({ 
    open: function(event, ui) { 
     $(this).css({'max-height': 500, 'overflow-y': 'auto'}); 
    }, 
    autoOpen:false, 
    modal: true, 
    resizable: false, 
    draggable: false, 
    width: '690', 
    closeOnEscape: true, 
    position: 'top' 
}); 

Tôi muốn điều chỉnh vị trí y của hộp thoại sao cho nó cách đỉnh cửa sổ 20px. Bất kỳ ý tưởng những gì tôi có thể làm gì?

+0

tôi don không hiểu những gì câu hỏi thực tế là. – j08691

+0

@ j08691 Tôi muốn điều chỉnh vị trí của hộp thoại y sao cho nó vẽ 20px từ đầu cửa sổ. Tôi chỉ có thể thay đổi vị trí y thành trên cùng, giữa hoặc dưới. –

+0

Bạn sẽ không đạt được lợi nhuận tối đa 20px? – j08691

Trả lời

57

Thay đổi giá trị cuối cùng giải quyết vấn đề:

position: ['center',20] 

http://jsfiddle.net/chrisloughnane/wApSQ/3

+3

+1 - Cảm ơn bạn đã chia sẻ! =) –

+0

Đây là một trong những hoàn hảo –

+0

Cảm ơn một giải pháp tốt nhất của nó. – Dheeraj

8

Cách đơn giản nhất là:

$("#dialog").dialog({ position: { my: "center", at: "top" } }); 
+0

Tốt! Kiểm tra quá https://jqueryui.com/position/ – KingRider

1

sử dụng jQuery UI 1.11.4

 var Y = window.pageYOffset; 

     $("#dialogJQ").dialog({ 
      modal: true, 
      closeOnEscape: false,     
      width:'auto', 
      dialogClass: 'surveyDialog', 
      open: function(event, ui) { 
       $(this).parent().css({'top': Y+20}); 
      }, 
     });