首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery检测DIV中滚动条的存在吗?

问使用jQuery检测DIV中滚动条的存在吗?
EN

Stack Overflow用户
提问于 2010-04-16 01:55:53
回答 4查看 34.3K关注 0票数 23

我想使用jQuery检测DIV中滚动条的存在。我在考虑使用$('div').scrollTop(),但是当滚动条在顶部和根本没有滚动条时,这两种情况都会返回0。

有什么想法吗,伙计们?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-16 02:41:51

假设div上的overflow为auto

代码语言:javascript
复制
var div= document.getElementById('something'); // need real DOM Node, not jQuery wrapper
var hasVerticalScrollbar= div.scrollHeight>div.clientHeight;
var hasHorizontalScrollbar= div.scrollWidth>div.clientWidth;
票数 48
EN

Stack Overflow用户

发布于 2012-01-23 20:36:32

代码语言:javascript
复制
// plugtrade.com - jQuery detect vertical scrollbar function //
(function($) {
    $.fn.has_scrollbar = function() {
        var divnode = this.get(0);
        if(divnode.scrollHeight > divnode.clientHeight)
            return true;
    }
})(jQuery);

示例:

代码语言:javascript
复制
if($('#mydiv').has_scrollbar()) { /* do something */ } 
票数 19
EN

Stack Overflow用户

发布于 2010-04-16 02:46:47

我最终通过执行以下操作找到了解决方案:

包装使用DIV增长的内容,然后我通过比较wrapperDiv的高度和containerDiv的高度(如果内容太大,通常会有滚动条)来检测(垂直)滚动条是否存在。

如果wrapperDiv的高度大于containerDiv的高度,则会有滚动条;如果较小,则不会有滚动条。

代码语言:javascript
复制
<DIV id="containerDiv" style="width:100px;height:100px;overflow:auto;">
    <DIV id="wrapperDiv">
        .... content here...
    </DIV>
</DIV>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2647761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档