2014-02-17 140 views
3

我使用这个JavaScript/jQuery来打开一个对话框,但是当我在页面上向下滚动和关闭后的第一个打开另一个窗口,该窗口将在我的选择位置打开时的jQuery对话框位置,加上我向下滚动的位置。当我尝试移动它,它会不断跳跃下来,造成一个非常恼人的结果。向下滚动

function showDialog(url) { 

    dialogFrame = $('<iframe style="width:100% !important;" frameborder="0" id="Dialog" src="' + url + '" />').dialog({ 
     autoOpen: true, 
     height: 500, 
     width: 1000, 
     title: 'myWindow', 
     resizable: false, 
     modal: true, 
     position: { 
      my: "center", 
      at: "center", 
      of: window 
     } 
    }); 
} 

如何防止此行为?这可能是position : { }但它应该是什么?

+0

你为什么不使用固定从屏幕'位置的顶部位置:固定;' –

+0

这不能解决拖放的解决方案,它仍然跳下。 – Rob

回答

1

我有一个jQuery UI的对话框时body有CSS属性position:relative;相同的问题。你可能想检查是否是这种情况。

在我的情况下我无法删除position:relative;所以决定重写top值,并使用一个固定的定位:

$(".dialogFrame").dialog({ 
    // ... 
    open: function(event, ui) { 
     $(event.target).parent().css('position', 'fixed'); 
     $(event.target).parent().css('top', '20px'); 
    } 
    // ... 
}); 

该脚本可能通过计算屏幕的有效中心进行优化。

+0

可爱的,可能有其他的解决方案,所以我现在保持开放。 – Rob

+0

当我没有记错,问题在于计算对话框的最高值。你可以尝试'position:['middle',20],'明确设置最高值吗? –