2014-01-09 106 views
2

我需要一個對話框,始終在窗口頂部和對話框頂部之間有100px的間隔。但是,如果對話框比窗口高,它將始終與窗口頂部齊平(top爲0px)。jQuery UI對話框頂部間距

設置一個topmargin-top,並padding-top與CSS對話沒有幫助,因爲它的工作出了前值當了這些價值觀,進去了,還是將其定位與窗口的頂部齊平(即加入margin-top: 100px意味着它最終被定位爲top: -100px)。一旦對話框比窗口高,使用內置選項(例如'position': ['center', 100])不起作用。

如果可能,我寧願避免在每次初始化之後手動調整位置。

任何想法?

回答

3

我想你需要需要覆蓋的位置配置的「使用」的一部分,看到這一點:https://github.com/jquery/jquery-ui/blob/9268634b800ae2148bf088cd229a3bafe2534c7c/ui/jquery.ui.dialog.js#L60-L66

+1

謝謝。這不起作用,但我只是把我想要手動的偏移,它的工作。 '位置:{ \t使用:功能(POS){ \t \t變種topOffset = $(本)的CSS(POS).offset()頂部; \t \t if(topOffset <0){ \t \t \t $(this).css(「top」,50); \t \t} \t} }' – MattRogowski

+0

Mhh,你應該加上offset和overwrite,這樣可以重置小屏幕上的頂部位置。 – fnagel

0

open事件的選項來完成這個像這樣:

$('#dialog').dialog({ 
    open : function() { 
     if ($(this).closest('.ui-dialog').offset().top < 40) { 
      $(this).closest('.ui-dialog').css({'top':'40px'}); 
     } 
    } 
});