2011-11-28 53 views
1

我要检查,如果水平滚动条被应用到一个div像这样:是否可以确定某个元素当前是否溢出其容器?

if (box.width() < box.get(0).scrollWidth) 

这始终是真实的,即使没有任何滚动条,因为box.get(0).scrollWidth回报203px,而.width()返回200

这里我举一个例子,请看第一个盒子。 $('.box0')

例子:http://www.nikolaydyankov.com/Dev/lionbars/

+0

什么浏览器可以重现? –

+0

我在FF 8.0.1中获得了宽度和scrollWidth的183。你在什么浏览器下测试? –

+0

即时测试与Firefox 8 –

回答

2

我只是这个来决定一个div满溢 - 即滚动:

$.fn.hasScrollBar = function() { 
    var _elm = $(this)[0]; 
    var _hasScrollBar = false; 
    if ((_elm.clientHeight < _elm.scrollHeight) || (_elm.clientWidth < _elm.scrollWidth)) { 
     _hasScrollBar = true; 
    } 
    return _hasScrollBar; 
} 

用法:$('#<id>').hasScrollBar();返回真/假

*从SO本来我想

+0

clientWidth和scrollWidth都返回203.谢谢,这应该工作。我应该读更多关于clientWidth。 –

+0

您还必须检查滚动条是否可见,即使它被禁用。这是溢出:滚动 – momomo

相关问题