我需要一个对话框,在窗口顶部和对话框顶部之间始终有100px的间隙。但是,如果对话框高于窗口,它将始终与窗口顶部齐平(top
为0px)。
将top
,margin-top
和padding-top
设置为使用CSS的对话框无济于事,因为在计算出最高值时会考虑这些值,并且仍然会保留位置它与窗口顶部齐平(即添加margin-top: 100px
表示它最终定位为top: -100px
)。使用内置选项(例如'position': ['center', 100]
)在对话框高于窗口时不起作用。
如果可能的话,我还要避免在每次初始化后手动调整位置。
有什么想法吗?
答案 0 :(得分:3)
我认为您需要覆盖位置配置的“使用”部分,请参阅:https://github.com/jquery/jquery-ui/blob/9268634b800ae2148bf088cd229a3bafe2534c7c/ui/jquery.ui.dialog.js#L60-L66
答案 1 :(得分:0)
我使用open
事件选项完成了这项操作,如下所示:
$('#dialog').dialog({
open : function() {
if ($(this).closest('.ui-dialog').offset().top < 40) {
$(this).closest('.ui-dialog').css({'top':'40px'});
}
}
});