打开jquery对话框时,我的页面上会出现滚动条

时间:2012-03-08 14:21:01

标签: jquery jquery-ui

当我打开jquery对话框时,滚动条出现在我的页面上。我不知道为什么,因为我的jquery对话框非常小。当我移动对话框时(通过拖动标题栏),立即滚动条消失。

有什么想法吗?

感谢。


修改

我调试了一点,我能够重现这个问题。在我的页面上,我有一些标签(加载了ajax)。第一个需要页面上的滚动条。当我点击第二个“标签”时,没有滚动条出现在这个页面上,当我打开一个对话框时,jQuery滚动条会回来!如果我拖动jQuery对话框(带标题栏),滚动条消失,如果我再次打开jQuery对话框,则不会回来。它一直有效,直到我回到需要滚动条的第一个“标签”上。

我不知道我是否清楚。


编辑2

好的,我测试了很多,我更清楚地指出了问题所在。这是:当用户点击标题菜单(ajax链接)时,会显示一个临时的jquery对话框,要求用户等待......直到加载页面。此jquery对话框是模态>>在整个窗口高度/宽度上显示灰色背景。

enter image description here

正如您在上面的捕捉中所看到的,高度相当可观。从页面A(长页面)导航到页面B(短页面)。此时,关闭对话框模态。在新显示的页面(更小)上,我单击一个按钮以显示另一个jquery模式对话框。似乎jquery仍然认为我的页面高度为1198px,但事实并非如此!因此我看到滚动条出现了。

现在最大的问题是:我该怎么做才能避免这种行为?

2 个答案:

答案 0 :(得分:0)

我终于找到了解决方案:

$('.ui-widget-overlay').css('height', '100%');

$("#dialog-modal").dialog('close');

在关闭我的jquery模式对话框之前(说等待......)我调整灰色背景的高度(通常在使用jquery模态时)。这样,下一个jquery模式就不会出现滚动条了。

请记住以下情况:

  • 显示页面A(长页面)
  • 用户点击链接进行导航(ajax调用>>部分)到Page B
  • 显示模态jquery对话框(*),要求用户等待...
  • 页面B已加载(短页)
  • 模态jquery对话框(*)已关闭

页面A和页面B之间的高度差异是问题!!

答案 1 :(得分:-2)

我现在没有太多时间回答,但我想的一件事就是在CSS的html标签中永久添加垂直滚动条,只是为了看看它是否最初摆脱了问题。