向下滚动时jQuery对话框的位置

时间:2014-02-17 14:46:35

标签: javascript jquery

我正在使用这个javascript / jQuery来打开一个对话框,但是当我向下滚动页面并在关闭第一个窗口后打开另一个窗口时,窗口将在我的选择位置打开,加上位置I向下滚动。当我尝试移动它时,它将继续跳向下,导致非常恼人的结果。

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 : { },但应该是什么?

1 个答案:

答案 0 :(得分:1)

body具有CSS属性position:relative;时,我遇到了与jQuery UI对话框相同的问题。您可能想检查是否是这种情况。

在我的情况下,我无法移除position:relative;所以我决定覆盖top值并使用固定定位:

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

可以通过计算屏幕的有效中心来优化脚本。