我想使用jQuery检测DIV中滚动条的存在。我在考虑使用$('div').scrollTop(),但是当滚动条在顶部和根本没有滚动条时,这两种情况都会返回0。
有什么想法吗,伙计们?
发布于 2010-04-16 02:41:51
假设div上的overflow为auto
var div= document.getElementById('something'); // need real DOM Node, not jQuery wrapper
var hasVerticalScrollbar= div.scrollHeight>div.clientHeight;
var hasHorizontalScrollbar= div.scrollWidth>div.clientWidth;发布于 2012-01-23 20:36:32
// 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);示例:
if($('#mydiv').has_scrollbar()) { /* do something */ } 发布于 2010-04-16 02:46:47
我最终通过执行以下操作找到了解决方案:
包装使用DIV增长的内容,然后我通过比较wrapperDiv的高度和containerDiv的高度(如果内容太大,通常会有滚动条)来检测(垂直)滚动条是否存在。
如果wrapperDiv的高度大于containerDiv的高度,则会有滚动条;如果较小,则不会有滚动条。
<DIV id="containerDiv" style="width:100px;height:100px;overflow:auto;">
<DIV id="wrapperDiv">
.... content here...
</DIV>
</DIV>https://stackoverflow.com/questions/2647761
复制相似问题