我可以强制对话框只能在窗口内拖动吗?

Can I force the dialog draggable only inside the window?

本文关键字:窗口 拖动 对话框 我可以      更新时间:2023-09-26

html:

    <div id="dialog" title="Past Issues">
    </div>

Jquery:

$( "#dialog" ).dialog({
        height: 900,
        width:1200,
        modal: true,
});

问题是目前对话框可以拖动到几厘米以上的窗口区域,是否可以设置包含是窗口?或者默认设置已经是包含:窗口?如果是,问题的根源是什么?谢谢。

传递给

对话框使用的可拖动小部件的默认containment选项确实是document,而不是window

您可以通过使用 data(( 获取对话框小部件,然后访问其uiDialog成员并在此处修改可拖动的containment选项来覆盖此默认值:

$("#dialog").dialog({
    height: 900,
    width: 1200,
    modal: true
}).data("ui-dialog").uiDialog.draggable("option", "containment", "window");

试试这个,为了演示,我用了一个div你可以用window替换它

$("#dialog").dialog({
    open: function(event, ui) {
        var vDlg = $(event.target).parent();
        var vCont = $('#main');   // for window use - $(window);
        vDlg.draggable("option", "containment", vCont).appendTo(vCont);
        $(this).dialog("option", "position", "center");
    }
});​

在这里演示