Jquery ui jQuery UI对话框:如果对话框高度超过窗口高度,垂直滚动将不正确
以下是代码:Jquery ui jQuery UI对话框:如果对话框高度超过窗口高度,垂直滚动将不正确,jquery-ui,jquery-ui-dialog,Jquery Ui,Jquery Ui Dialog,以下是代码: <script type="text/javascript"> $(function(){ var dialogOptions = { title: "Header", autoOpen: false, modal: true, width: 400, height: 1000 }; $(".wn
<script type="text/javascript">
$(function(){
var dialogOptions = {
title: "Header",
autoOpen: false,
modal: true,
width: 400,
height: 1000
};
$(".wnd").dialog(dialogOptions);
$("#btn").click(function(){ $(".wnd").dialog("open"); });
});
</script>
<style>
.wnd {background:yellow;height:900px;width:300px;}
</style>
<div class="wnd"></div>
<button id="btn">click me</button>
$(函数(){
变量对话框选项={
标题:“标题”,
自动打开:错误,
莫代尔:是的,
宽度:400,
身高:1000
};
$(“.wnd”).dialog(dialogOptions);
$(“#btn”)。单击(函数(){$(“.wnd”)。对话框(“打开”);});
});
.wnd{背景:黄色;高度:900px;宽度:300px;}
点击我
当对话框被打开并且高于主窗口时,会有一个侧滑块,如果您尝试使用鼠标光标拖动它,它不会向下滑动(看起来像是锁定的)
但当按下键盘上的按钮(箭头)或用鼠标滚轮向下滚动时,它滑动良好
这是
如何激活侧滑块
谢谢 清洁的解决方案如下:
我正在做的是包装jQuery UI overlay create方法,以关闭阻止滚动正常工作的事件。另一种无法使用窗口滑块的方法是在对话框窗口本身上启用滑块。如果在对话框的最大高度上放置一个上限,这些将自动显示,但对于某些版本的jQueryUI来说可能有点棘手 至少在我所使用的jQueryUI版本(1.9)上,我需要自己指定最大高度,因为应该能够根据使用的maxHeight属性不起作用* 以下是有效的方法:
$("#dialog").dialog({
modal: true,
width: "auto",
height: "auto"
/* maxHeight: whatever won't work, */
}).css("maxHeight", window.innerHeight-120);
我从窗口的高度减去120像素,以适应对话框窗口的页眉和页脚部分及其“ok”按钮
*如果试图调整对话框的大小,最大高度实际上会生效,但不会在显示时生效。由于对话框是模态的,所以滚动被禁用。您可以将
modal:false设置为允许再次滚动。但是你想要一个模态对话框吗?@andyb,如果对话框本身比窗口高,那么缺少主窗口的滚动会限制它。另一种可能是在对话框上强制滚动条,但在某些情况下,滚动整个窗口会是一种更好的体验;非常感谢分享这个。我只在Chrome上遇到了这个问题,这解锁了滚动条,我还没有注意到任何负面后果。仅供参考,虽然这是一个旧答案,但它仍然是IMO上最好的答案。但是,截至目前(2017/18)maxHeight参数现在可以很好地在.dialog对象上实现这一点。使用maxHeight参数对我来说很有效,但这个答案没有。。即使它应该。。。。