检查HTML元素是否具有滚动条
检查元素是否具有滚动条的最快方法是什么? 当然,一件事是检查element是否大于其视口,这可以通过检查以下两个值来轻松完成: el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth 但这并不意味着它也具有滚动条(因此它实际上可以被人类滚动)。 题 如何在1个跨浏览器和2个 javascript中检查滚动条(如无jQuery)? 仅使用Javascript,因为我需要尽可能小的开销,因为我想编写一个非常快速的jQuery选择器过滤器 // check for specific scrollbars $(":scrollable(x/y/both)") // check for ANY scrollbar $(":scrollable") 我想我必须检查overflow样式设置,但是如何以跨浏览器的方式进行呢? 附加编辑 不仅是overflow样式设置。检查元素是否具有滚动条并不是看起来那么简单。我上面写的第一个公式在元素没有边框的时候很好用,但是当元素没有边框时(特别是当边框的宽度很大时),offset尺寸可以大于scroll尺寸,但是元素仍然可以滚动。实际上,我们必须从offset尺寸中减去边框以获得元素的实际可滚动视口,并将其与scroll尺寸进行比较。 备查 :scrollablejQuery选择器过滤器包含在我的.scrollintoview()jQuery插件中。如果有人需要,可以在我的博客文章中找到完整的代码。即使没有提供实际的解决方案,Soumya的代码也极大地帮助我解决了问题。它为我指明了正确的方向。