使用jQuery UI Dialog。
非常好用,但目前当我拖动对话框时,它不会移出屏幕(整个对话框始终在视口内)。
是否有一种方法可以设置对话框,使我可以将其部分拖到屏幕外?
使用jQuery UI Dialog。
非常好用,但目前当我拖动对话框时,它不会移出屏幕(整个对话框始终在视口内)。
是否有一种方法可以设置对话框,使我可以将其部分拖到屏幕外?
或者您可以用更简单、更符合“jQuery方式”的方法来完成 :)
$(document).ready(function(){ $('#dialog'). dialog({ //在这里添加你的对话框选项 }). dialog("widget").draggable("option","containment","none"); //这个链式序列会取消限制 });
如果您扩展jQuery对话框代码,那么您肯定可以实现。只需包含以下代码:
$.ui.dialog.prototype._makeDraggable = function() {
this.uiDialog.draggable({
containment: false
});
};
它将使用false
作为默认包含值的覆盖值,从而禁用了包含。
我曾经遇到过同样的问题,本来想采用 betamax 的解决方案,但注意到该方案实际上替换了jQuery UI中的一些内置功能。因此,我改变了方法,保持了内置的功能,并通过重写 _makeDraggable
而非完全替换它来关闭拖动约束:
if (!$.ui.dialog.prototype._makeDraggableBase) {
$.ui.dialog.prototype._makeDraggableBase = $.ui.dialog.prototype._makeDraggable;
$.ui.dialog.prototype._makeDraggable = function() {
this._makeDraggableBase();
this.uiDialog.draggable("option", "containment", false);
};
}
尝试使用选项和位置。编写自己的JavaScript调用以移动框。
$('#dialog').dialog('option','position',[500, 100]);
但是您不能将框移出视口,如果想要这样的功能,请编写自己的代码,扩展jquery ui对话框,(更新检查有效位置的代码块(如果位置x,y在视口中则为有效)