2010-02-05 27 views
3

后,我有以下jQueryUI的对话框:jQueryUI的对话框定位垂直滚动

 $("#dialog").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     height: 420, 
     hide: 'slide', 
     modal: true, 
     buttons: { 
          'Annuler': function() { 
       $(this).dialog('close'); 
      }, 
      'Envoyer votre message': function() {} 
} 

当我与它显示:

$('#question-annonceur').click(function() { 
     $('#dialog').dialog('open'); 
    }); 

这几乎居中。但是当我垂直滚动时,它不再居中 事实上,对话框仍然居中(关于用户设置的滚动条位置),但滚动条已滚动到窗口的顶部,然后,该对话框不再居中(因为它是关于新的滚动条的位置为中心)。

它的存在属性我可以设置使滚动条不重置在这样的顶部?

感谢。

回答

8

从位置更改CSS:绝对位置:固定对我有效:

.ui-dialog { position: fixed; padding: .1em; width: 300px; overflow: hidden; } 
2
jQuery(window).scroll(function() { 
    jQuery('#dialog').dialog('option','position','center'); }); 

作品我的jQuery 1.9

这是假设你的对话框有ID = “对话框”

+1

非常漂亮:优雅简洁。 – 2014-02-22 00:37:08

+0

将侦听器附加到窗口对象上的滚动事件_without debouncing_正在寻求麻烦。 – vrutberg 2015-03-06 12:07:10