javascript检测滚动条无法正常工作

时间:2013-05-09 16:51:49

标签: javascript jquery scrollbar

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

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

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的新手,所以如果我错过了一个重大错误,请保持温和。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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..

DEMO

在Firefox,Chrome,IE6,7,8上进行了测试。