当叠加层div可见时,隐藏父级的滚动条

问题描述

| 我有一个带有AjaxLink的页面,当单击链接时,将显示一个覆盖div,其中包含覆盖父页面的加载图像。我在这里找到了一个相关的例子。这是完美的工作。我将大小写从AjaxButton更改为AjaxLink。在我的情况下,页面默认情况下具有垂直滚动条。由于存在一个具有垂直扩展的大表,因此会生成此滚动条。现在,当该叠加层div可见时,滚动条仍然可见。我想隐藏该滚动条。所以我尝试了:
Mask.show = function(targetId)
{
  var target=document.getElementById(targetId);
  var mask=document.createElement(\"div\");
  mask.innerHTML=\" \";
  mask.className=\"wicket-mask\";
  mask.style.cursor=\"not-allowed\";
  mask.style.zIndex=\"5000\";
  mask.id=\"wicket_mask_\"+targetId;
  document.body.appendChild(mask);
  Mask.offsetMask(mask);

  var spinner=document.createElement(\"div\");
  spinner.innerHTML=\" \";
  spinner.className=\"wicket-spinner\";
  spinner.style.cursor=\"not-allowed\";
  spinner.style.zIndex=\"6000\";
  spinner.id=\"wicket_spinner_\"+targetId;
  document.body.appendChild(spinner);
  Mask.centerSpinner(spinner);

  // I have added this
  document.body.style.overflow=\"hidden\";
}

/**
 Hides the mask and spinner
*/
Mask.hide = function(targetId)
{
  var mask=document.getElementById(\"wicket_mask_\"+targetId);
  if (mask!=null) {
   mask.style.display=\"none\";
   document.body.removeChild(mask);
  }
  var spinner=document.getElementById(\"wicket_spinner_\"+targetId);
  if (spinner!=null) {
   spinner.style.display=\"none\";
   document.body.removeChild(spinner);
  }

  // I have added this
  document.body.style.overflow=\"auto\";
}
但是没有帮助。该滚动条保持可见。 我不知道是否可以从其他网站询问与代码相关的此类问题。所以我很抱歉 谢谢并恭祝安康。     

解决方法

你使用的是什么浏览器? 我怀疑这可能是某些版本的Internet Explorer Quirks模式的情况,请尝试更改文档类型以输入“标准模式”。 您可以尝试:
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
在ie中,如果您无法更改文档类型,也可以尝试将属性应用于document.documentElement     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...