【发布时间】:2012-11-08 06:24:43
【问题描述】:
当且仅当页面(html,正文)具有垂直滚动条时,我试图隐藏 ID 为 #myWork 的元素。 在阅读了关于检测垂直滚动条存在的另一个问题/答案后,我有以下代码:
var hasVScroll = document.body.scrollHeight > document.body.clientHeight;
var cStyle = document.body.currentStyle||window.getComputedStyle(document.body, "");
hasVScroll = cStyle.overflow == "visible" || cStyle.overflowY == "visible" || (hasVScroll && cStyle.overflow == "auto") || (hasVScroll && cStyle.overflowY == "auto");
if(hasVScroll){
document.getElementById('myWork').style.display = 'none';
}
这可行,但当此 html 页面上没有垂直滚动条时,它也会隐藏 id 为 myWork 的元素。
我衷心感谢所有帮助以解决此问题。
附:因为我已经在使用 jQuery,所以我尝试在 if 语句中使用 jQuery 隐藏它,但这也不起作用。
【问题讨论】:
-
好吧,如果它隐藏了元素,这意味着
cStyle.overflow == "visible" || cStyle.overflowY == "visible"的计算结果可能为真。所以这可能与你的 CSS 有关?如果没有,您是否在所有浏览器上对此进行了测试?如果第一行不是跨浏览器,我不会感到惊讶。 -
@bellpeace 我不认为这是一个 CSS 问题,因为当脚本关闭时,该站点很好。我只在 chrome 中测试过。
标签: javascript jquery