检测页面是否有垂直滚动条?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我只想要一些简单的JQ / JS来检查当前页面/窗口(不是特定的元素)是否有垂直滚动条。

搜索给我的东西,似乎这个基本功能过于复杂。

如何才能做到这一点?

提问于
用户回答回答于

尝试这个:

var hasVScroll = document.body.scrollHeight > document.body.clientHeight;

但是,这只会告诉你垂直scrollHeight是否大于可见内容的高度。该hasVScroll变量将包含true或false。

如果你需要进行更彻底的检查,请将以下代码添加到上面的代码中:

// Get the computed style of the body element
var cStyle = document.body.currentStyle||window.getComputedStyle(document.body, "");

// Check the overflow and overflowY properties for "auto" and "visible" values
hasVScroll = cStyle.overflow == "visible" 
             || cStyle.overflowY == "visible"
             || (hasVScroll && cStyle.overflow == "auto")
             || (hasVScroll && cStyle.overflowY == "auto");
用户回答回答于
$(document).ready(function() {
    // Check if body height is higher than window height :)
    if ($("body").height() > $(window).height()) {
        alert("Vertical Scrollbar! D:");
    }

    // Check if body width is higher than window width :)
    if ($("body").width() > $(window).width()) {
        alert("Horizontal Scrollbar! D:<");
    }
});

扫码关注云+社区