我有一个固定高度且overflow:hidden;
的div
我想用jQuery检查div是否具有超出div固定高度的元素。我该怎么办?
投票
您实际上不需要任何jQuery来检查是否发生溢出。使用element.offsetHeight
,element.offsetHeight
,element.offsetWidth
和element.offsetWidth
,您可以确定元素的内容是否大于其大小:
element.scrollHeight
查看实际示例:element.scrollHeight
但是,如果您想知道元素内的哪个元素可见或不可见,则需要进行更多的计算。就可见性而言,子元素有三种状态:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9PNTZ5ay5wbmcifQ==” alt =“在此处输入图像说明”>“ >>
如果您要计算半可见项目,那将是您需要的脚本:
element.scrollWidth
并且如果您不希望计算半可见,您可以进行一些计算。
投票
我和OP有相同的问题,但这些答案都不符合我的需求。我需要一个简单的条件,以满足简单的需求。
投票
所以我使用了溢出的jQuery库:var invisibleItems = []; for(var i=0; i<element.childElementCount; i++){ if (element.children[i].offsetTop + element.children[i].offsetHeight > element.offsetTop + element.offsetHeight || element.children[i].offsetLeft + element.children[i].offsetWidth > element.offsetLeft + element.offsetWidth ){ invisibleItems.push(element.children[i]); } }
投票
部分基于Mohsen的答案(添加的第一个条件包括孩子在父母面前隐藏的情况):
投票
一种方法是对照自身检查scrollTop。给内容提供一个大于其大小的滚动值,然后检查其scrollTop是否为0(如果不为0,则发生溢出。)
投票
用简单的英语:获取父元素。检查它的高度,然后保存该值。然后循环遍历所有子元素并检查其各自的高度。
投票
这是一个纯jQuery解决方案,但是很杂乱:
投票
这是对我有用的jQuery解决方案。 jQuery('#parent').isChildOverflowing('#child');
等无效。
投票
我通过在溢出的div中添加另一个div来解决此问题。然后,您比较2个格的高度。