有没有办法使用JQuery查明元素是否有滚动条?

Dav*_*ave 6 javascript jquery jquery-selectors

假设我有一个像这样的元素

<div id="myDiv" style="height:10px; width:100px; overflow:scroll;"> 
   random amount of lorem ipsum... 
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法在JS或Jquery中查看$("#myDiv")并查看它是否有滚动条?

谢谢

戴夫

Joh*_*ock 12

这应该工作

$.fn.hasVerticalScrollBar = function () {
     return this[0].clientHeight < this[0].scrollHeight;
}

$.fn.hasHorizontalScrollBar = function () {
    return this[0].clientWidth < this[0].scrollWidth;
} 
Run Code Online (Sandbox Code Playgroud)

用法

alert($('#mydivid').hasHorizontalScrollBar());
alert($('#mydivid').hasVerticalScrollBar());
Run Code Online (Sandbox Code Playgroud)

编辑:

要将此方法与不可见元素一起使用,请克隆div,将其不透明度设置为0,将克隆附加到正文,检查克隆是否具有滚动条,然后删除克隆:

var clone = $('#mydivid').clone();
clone.css('opacity', '0').appendTo('body');
if (clone.hasHorizontalScrollBar()) {
   //do the job here
}
clone.remove();
Run Code Online (Sandbox Code Playgroud)