用jQuery检测滚动条存在仍然很难吗?

我知道检测滚动条的存在应该是我们都应该忍受的难以捉摸的事情之一。 到目前为止我所读到的是你无法真正检测滚动条的存在,只能使用DOM中的提示来知道它们是否存在,并且不能在少于30行的代码中完成。

这对我来说听起来有点不可能,因为我们在2010年.jQuery是否有一个跨浏览器可靠的解决方案来处理这个并且至少在大部分时间都能工作? 请帮忙,我拉我的头发,一半已经在地板上了。

可能不像你希望的那样优雅,但这是我最近编写的用于计算视口高度的脚本的适当调整。

从逻辑上讲,您需要在document readywindow resize调用此函数。

它还处理您在Opera (第2行)和IE7 (第6 行)中遇到的不一致。

 function scrollbar() { var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height(); if (jQuery.browser.msie) { if(parseInt(jQuery.browser.version) == 7) { viewportHeight -= 3; } } if(viewportHeight <= $('#wrapper').height()) { return true; } else { return false; } }