0

当且仅当页面(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 的元素。

我将真诚地感谢任何和所有的帮助来解决这个问题。

PS 我尝试在 if 语句中使用 jQuery 隐藏它,因为我已经在使用 jQuery,但这也不起作用。

4

1 回答 1

1

如果您已经在使用 jQuery,这应该可以工作:

function init(e){
    var hasVScroll = $(document).height( ) > $(window).height( );

    if(hasVScroll){
        $('#myWork').hide( );
    }

}

$(document).ready(init);

好的,所以它不起作用的原因是这个

var cStyle = document.body.currentStyle||window.getComputedStyle(document.body, "");
hasVScroll = cStyle.overflow == "visible" || cStyle.overflowY == "visible" || (hasVScroll && cStyle.overflow == "auto") || (hasVScroll && cStyle.overflowY == "auto");

始终将 hasVScroll 设置为 true。

希望这可以帮助。

于 2012-11-08T06:56:17.653 回答