正在创建一个函数来列出给定节点的父可滚动元素并使用此检查
( e.scrollWidth > e.clientWidth ) || ( e.scrollHeight > e.clientHeight )
当我在打开的页面上测试它时(stackoverflow问题),我注意到问题和答案的<table>
和<tbody>
元素返回true
。对于页面上的其他<table>
和<tbody>
元素,不会发生这种情况。
我的初始猜测是边框或边距,但似乎并非如此(如下面的代码所示,请在此页面上尝试)。
导致这种情况的原因以及如何检查?
var tbodys = document.getElementsByTagName('tbody'), css,
i = tbodys.length;
while( i-- > 0 ) console.log(
tbodys[i],
tbodys[i].scrollHeight > tbodys[i].clientHeight,
(css = window.getComputedStyle( tbodys[i] )).border,
css.margin,
css.padding,
css.position,
css.top
);
我不知道这是否适用于所有浏览器,只适用于Google Chrome或更具体的内容。