2011-05-10 53 views
1

我有一个搜索和替换的对话框。目前我使用下面的方法来重新调整窗口的位置。我需要保持窗口静止在屏幕上(无论用户拖动窗口的位置)而不移动它,或将其重新设置回屏幕中间,这正是jQuery("#dialog-form").dialog("option","position","center");目前所做的。jQuery对话框,当前屏幕上的静态位置

下面是从documentation of jQuery dialog的样品。我想知道如何根据当前视口设置修改设置值以重新定位窗口。所以当它自动在页面上滚动时,它将始终保持在当前视口的X和Y上。

//getter 
var position = $(".selector").dialog("option", "position"); 
//setter 
$(".selector").dialog("option", "position", 'top'); 

回答

0

这是我的滚动做和调整:

$(window) 
     .resize(function() { 
      $('body').css('height', $(this).height()) 
      $('#alertsWindow').dialog("option", "position", ['left','bottom']); 
     }) 
     .scroll(function(){$(this).resize()}); 

它使对话框中的角落。 (你可以使用任何位置要使用)

从一jQuery UI page on dialogs

position String, Array      Default:'center' 
Specifies where the dialog should be displayed. Possible values: 
1) a single string representing position within viewport: 'center', 'left', 'right', 'top', 'bottom'. 
2) an array containing an x,y coordinate pair in pixel offset from left, top corner of viewport (e.g. [350,100]) 
3) an array containing x,y position string values (e.g. ['right','top'] for top right corner). 
+0

是否有可能填补'left'和'bottom'实际X和Y坐标? – Webnet 2011-05-10 17:16:10

+0

@Webnet,是的。用你想要的任何坐标填充它:-) – Neal 2011-05-10 17:21:01

+0

@Webnet,请参阅更新 – Neal 2011-05-10 17:25:52

0

你可以试试这个:

$(window).resize(function() {$(".selector").dialog("option", "position", ['center','top']);}); 

$(window).scroll(function() {$(".selector").dialog("option", "position", ['center','top']);}); 
0

我知道这个问题是旧的,但更好的修复是设置位置:固定在包含对话框元素上。没有涉及的代码,CSS将为您处理所有事情。由于插件会合并CSS位置并将其设置为绝对位置,因此在通过jQuery可调整大小的插件调整大小操作后,您需要将位置重置为固定位置。