2

我知道这个问题已经被问到了,但我很困惑,因为在尝试了几种不同的解决方案后,我仍然无法让我的脚本正确检测滚动条。

这是我目前用来尝试检测滚动条的功能:

function checkScrollBar() {
  var hContent = $("body").height(); // get the height of your content
  var hWindow = $(window).height(); // get the height of the visitor's browser window

  if(hContent>hWindow) { // if the height of your content is bigger than the height of the browser window, we have a scroll bar
    return true;    
  }

  return false;
}

问题是,即使在我的页面上确实弹出了一个垂直滚动条,因为页面的内容比我笔记本电脑上的窗口长,这个函数仍然说窗口高度等于正文高度。

我对 javascript/jQuery 还比较陌生,所以如果我遗漏了一个重大错误,请保持温和。

4

2 回答 2

1

您需要考虑页面的偏移量。

function checkScrollBar() {
  var hContent = $(document).height(); // get the height of your content
  var hWindow = $(window).height(); // get the height of the visitor's browser window

  if(hContent>hWindow) { // if the height of your content is bigger than the height of the browser window, we have a scroll bar
    return true;    
  }

  return false;
}

示例:http: //jsfiddle.net/a2rnd/

于 2013-05-09T16:54:28.790 回答
0

一个小插件。

(function($) {
    $.fn.hasScrollBar = function() {
        return this.get(0).scrollHeight > this.height();
    }
})(jQuery);

像这样使用它,

$('#my_div1').hasScrollBar(); // returns true if there's a `vertical` scrollbar, false otherwise..

演示

在 Firefox、Chrome、IE6、7、8 上测试

于 2013-05-09T16:56:32.710 回答