Jquery ui Jquery UI 1.10.x对话框关于大车身高度的拖动问题

Jquery ui Jquery UI 1.10.x对话框关于大车身高度的拖动问题,jquery-ui,scroll,jquery-ui-dialog,jquery-draggable,Jquery Ui,Scroll,Jquery Ui Dialog,Jquery Draggable,简言之:当您有文档高度>窗口高度时,向下滚动并打开对话框-您不能在Firefox中拖动它。错误仅出现在jQuery UI 1.10.x中 如何复制: jsfiddle: jQueryUIFF对话框错误-由mefa提供的JSFIDLE演示 html{ 字体大小:12px; } 身体{ 高度:2000px; } $(窗口)。加载(函数(){ $(函数(){ $(“#对话框模式”).dialog({ 身高:150, 莫代尔:对 }); }); }); 将此对话框拖动到Firefox中文档的底部 仅

简言之:当您有文档高度>窗口高度时,向下滚动并打开对话框-您不能在Firefox中拖动它。错误仅出现在jQuery UI 1.10.x中

如何复制:

jsfiddle:


jQueryUIFF对话框错误-由mefa提供的JSFIDLE演示
html{
字体大小:12px;
}
身体{
高度:2000px;
}
$(窗口)。加载(函数(){
$(函数(){
$(“#对话框模式”).dialog({
身高:150,
莫代尔:对
});
});
});
将此对话框拖动到Firefox中文档的底部

仅在jQueryUI1.10.x中存在Bug

这是我的自由之路。Donec aliquet leo vel magna。红背相思。埃蒂安·比本杜姆、埃尼·福西布斯·阿利奎特·朗库斯、阿尔库·菲利斯·乌尔里西斯·内克、艾米特·拍卖行精英爱神之座

视频:

因此,假设您有一个jQueryUI对话框,并且标记有垂直滚动(例如,您有很多内容,例如大表)。假设窗口高度为800px,文档高度为2000px;所以你需要向下滚动,以获取所有内容

然后在窗口高度上向下滚动,例如到1000px,打开对话框。在那之后,你不能正确地将它拖动到任何其他位置,因为它会疯狂地跳跃

我录制了一个基于原始jQueryUI示例的演示,因此没有人能说我遗漏了什么或损坏了什么。 我唯一改变的是body css attr“height”,并将其设置为2000px以模拟大型文档


非常感谢您的建议/修复。

我已经为您尝试了一些东西

这不是最好的,但你可以试试。。我希望

将代码重新放置为

 $(function() {
   $( "#dialog-modal" ).dialog({
     height: 150,
     modal: true,
     dragStop: function( event, ui ) {           
       $( "#dialog-modal" ).dialog({ position: 'center',draggable: true });
    }

  });
});

当你向上点击鼠标时,它会粘在你的屏幕中心。。。例如,我把它放在中心,但你可以把它放在任何地方。。。浏览一下文档。

突然,我找到了一个解决方案

要修复此错误,只需添加以下CSS规则

.ui-dialog {
    position: fixed;
}
但这也有副作用。 若对话框的一部分不在窗口范围内,那个么就不会出现垂直/水平滚动条,并且你们不能以任何方式到达对话框的隐藏部分。
需要等待Jquery UI团队的正确修复。

真正的修复是将Jquery.UI.draggable.js中的_convertPositionTo()和_generatePosition()替换为最新主版本中的_convertPositionTo()和_generatePosition()对于那些现在遇到它并且不能使用css的人来说。

这是jquery ui版本1.10.3
您可以通过包括以前的版本来解决此问题:

<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" type="text/javascript"></script>


在此处发布您的ui对话框代码非常有用。在Firefox中打开它谢谢,我刚刚从1.9.2中替换了_convertPositionTo和_generatePosition,它成功了。很高兴看到它有用:)我很高兴这帮了你:)有史以来最好的解决方案!非常感谢抱歉,我的bug是有效的。如果你的对话框可以调整大小,这还不够。“调整大小”事件将强制内联样式
位置:绝对
,并将其打断
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" type="text/javascript"></script>