Javascript jQuery对话框定位根据窗口大小自动定位

Javascript jQuery对话框定位根据窗口大小自动定位,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我有一个问题,因为jQuery对话框会自动将自己定位到窗口大小 例如: #对话框2 $( "#dialog2" ).dialog({ position: [0,1000], autoOpen: false }); 未正确定位到x=0和top=1000,并在浏览器中显示滚动条。相反,它是根据窗口大小来定位自己 有什么建议吗 我想将对话框定位在指定的位置,并在浏览器中显示一个滚动条。我认为JqueryUI对话框根本不允许溢出页面,因此除非您覆盖小部件以允许此操作,否则它将不可能 它应该位

我有一个问题,因为jQuery对话框会自动将自己定位到窗口大小

例如:

#对话框2

$( "#dialog2" ).dialog({
  position: [0,1000],
  autoOpen: false
});
未正确定位到x=0和top=1000,并在浏览器中显示滚动条。相反,它是根据窗口大小来定位自己

有什么建议吗


我想将对话框定位在指定的位置,并在浏览器中显示一个滚动条。

我认为JqueryUI对话框根本不允许溢出页面,因此除非您覆盖小部件以允许此操作,否则它将不可能

它应该位于$.widget('ui.dialog'{})对象下jquery-ui-VER.js的这个函数中

以下内容对我来说几乎是可行的,因为垂直位置是正确的,但水平位置是错误的

编辑:得到了一个更好的解决方案(和),它可以根据需要在窗口的左侧正确定位

HTML 注意:需要jQuery、jQueryUI和一个jQueryUI主题。基本上,位置选项是“将我的左侧放置在容器左侧,水平偏移量为0px,垂直偏移量为1000px”。collision参数指示jQueryUI在元素溢出窗口时不要重新定位元素(请参阅文档)


最后,还解释了图片的情况:-)

很抱歉,这不是一个完整的解决方案。我稍后会尝试更正,但现在会丢失wifi信号!谢谢你,伙计。。如果设置偏移量:“170 1000”则其工作。。但是第一个0是什么?很抱歉耽搁了:-)我有一个不同的解决方案,似乎对我来说是正确的。我在jsBin超时方面遇到了问题,所以添加了一个JSFIDLE演示,而不是更新您原来的演示!
_position : function (a) {
        var b = [],
        d = [0, 0],
        e;
        if (a) {
            if (typeof a === "string" || typeof a === "object" && "0" in a) {
                b = a.split ? a.split(" ") :
                    [a[0], a[1]];
                if (b.length === 1)
                    b[1] = b[0];
                c.each(["left", "top"], function (g, f) {
                    if (+b[g] === b[g]) {
                        d[g] = b[g];
                        b[g] = f
                    }
                });
                a = {
                    my : b.join(" "),
                    at : b.join(" "),
                    offset : d.join(" ")
                }
            }
            a = c.extend({}, c.ui.dialog.prototype.options.position, a)
        } else
            a = c.ui.dialog.prototype.options.position;
        (e = this.uiDialog.is(":visible")) || this.uiDialog.show();
        this.uiDialog.css({
            top : 0,
            left : 0
        }).position(c.extend({
                of : window
            }, a));
        e || this.uiDialog.hide()
    },
<div id="dialog">Hello World</div>
$('#dialog').dialog({
  position:{
    my:'left',
    at:'left',
    offset:'0 1000',
    collision:'none'
  }
});