jQuery UI对话框/拖动问题
使用jQuery UI对话框。
效果很好,但是目前,当我拖动一个对话框时,它不会移出屏幕(整个对话框总是在视口中)。
有没有办法设置对话框,以便我可以将其部分拖离屏幕?
如果你扩展jQuery对话框代码,你肯定可以。 只需包含以下代码:
$.ui.dialog.prototype._makeDraggable = function() { this.uiDialog.draggable({ containment: false }); };
它将使用false
覆盖’document’的默认包含值,这将禁用包含。
或者你可以用更简单,更“jQuery方式”来做到这一点;)
$(文件)。就绪(函数(){ $( '#对话')。 对话({ //你的对话选项就在这里 })。 对话框(“小部件”)拖动(“选项”,“遏制”,“无”)。 //这个链式序列杀死了遏制 });
我有同样的问题,并将使用betamax的解决方案 ,但注意到它有效地取代了一些jQuery UI的内置function。 所以我调整了方法以保持内置function,但也通过重写_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]);
但你不能将盒子移出视口,如果你想拥有这样的function,自己编写,扩展jquery ui对话框,(更新代码块,检查有效位置(如果位置x有效, y在视口中)