【问题标题】:jquery modal dialog positioning at scrollable windowjquery模态对话框定位在可滚动窗口
【发布时间】:2013-09-20 13:56:37
【问题描述】:

我的页面包含大量数据,我必须向下滚动到底部才能单击按钮,这将触发 jquery 模式对话框。单击按钮时,我已将窗口滚动位置设置为页面顶部并隐藏了窗口滚动条。但是我无法将模态对话框定位到窗口的中心位置,而是定位到文档的中心。

我给出了如下代码:

$(settings.dialogDivId).dialog({
        open: function () {
            window.scrollTo(0, 0);
            $('body').css({ 'overflow': 'hidden', 'height': '100%' });

        },
        width: 400,
        modal: true,
        position: ['center', 'center'],
        buttons: {
            Ok: function () {
                $(this).dialog("close");
                $('body').css({ 'overflow': 'inherit', 'height': 'auto' });
                postbackCtrl.attr("data-validation-override", true);
                window.scrollTo(0, 0);
                postbackCtrl.click();
            },
            Cancel: function () {
                postbackCtrl.attr("data-validation-override", false);
                $(this).dialog("close");
                window.scrollTo(0, 0);
                $('body').css({ 'overflow': 'inherit', 'height': 'auto' });
            }
        }
    });

【问题讨论】:

  • 我已经更新了代码。在这里,我将位置设置为 ['center','center'] 这对于没有滚动条的页面(即数据量较少)可以正常工作,但对于大量数据(即带有滚动条),模式对话框不会以屏幕为中心.但它可能以文档为中心。

标签: jquery jquery-ui


【解决方案1】:

如果您希望它相对于其父级居中,则将您的模态对话框放置在position : relativefixed 以使其相对于窗口放置。

玩过leftmargin-left之后:

如果您的模态框width: 200px,您必须放置模态框left : 50% 并放置margin-left:-100px。现在,您的模态对话框水平居中。

http://jsfiddle.net/ArxAG/17/

【讨论】:

  • 我试过了。还是行不通。目前,如果没有滚动条,即较少的数据,我的页面可以正常工作。但在包含大量数据的页面中则不会。
  • 我已经更新了代码。在这里,我将位置设置为 ['center','center'] 这对于没有滚动条的页面(即数据量较少)可以正常工作,但对于大量数据(即带有滚动条),模式对话框不会以屏幕为中心.但它可能以文档为中心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 2013-01-05
  • 2017-02-22
  • 1970-01-01
相关资源
最近更新 更多