【发布时间】:2014-06-09 20:30:40
【问题描述】:
我有一个使用jquery ui dialog 的情况,并且我在对话框中有任何 html 表格,其中对话框的高度是固定的:
$("#modalDialogContainer").dialog({
resizable: false,
height: 700,
autoOpen: false,
width: 1050,
modal: true,
我通过单击按钮调用 AJAX 查询,并且我想使用 jquery UI blockUI plugin 来显示“正在加载”消息。像这样的:
$("#myTableInsideDialog").block({
css: {
top: '200px',
bottom: "",
left: ''
},
centerY: false, baseZ: 2000, message: $("#SavingMessage")
});
我遇到的问题是对话框中的内容比对话框的高度长 我给对话框的高度是 FIXED ,这样对话框就会有一个垂直滚动条。
有滚动条很好(这实际上是我想要的)但连锁反应是 因为 根据用户是否向下滚动,blockUI 消息不会垂直居中(甚至在屏幕上不可见)。
问题:我是否可以检测到具有垂直滚动条以正确垂直对齐块消息的对话框内的可见区域?
您可以在上面看到它的硬编码为距顶部 200 像素,因此如果用户没有向下滚动,它会很好用,但如果用户一直向下滚动,您将看不到消息
简而言之,如果我在卷轴的顶部,那么我会有这个:
$("#myTableInsideDialog").block({
css: {
top: '200px',
bottom: "",
left: ''
},
centerY: false, baseZ: 2000, message: $("#SavingMessage")
});
如果我在卷轴的底部,那么我想要这个:
$("#myTableInsideDialog").block({
css: {
top: '',
bottom: "200px",
left: ''
},
centerY: false, baseZ: 2000, message: $("#SavingMessage")
});
【问题讨论】:
-
消息是否需要包含在模态中?可以在jsfiddle中复制来演示吗?
-
问题标题和内容要求两个不同的东西。位置 determination 是一回事,消息 positioning 是另一回事,最好在没有像 TheGr8_Nik 的回答中那样确定任何东西的情况下实现。
-
@MKaama,最好在十字军东征之前了解 OP 的意图和需求。您非常喜欢的解决方案涉及 DOM 操作,如果可能的话,应该避免的事情的顶部附近。您正在通过简单的滚动位置计算来支持这一事业。
标签: javascript jquery jquery-ui-dialog vertical-alignment jquery-blockui