使用 jquery 检查 div 是否具有溢出元素
2022-08-30 04:28:35
我有一个固定高度的div和overflow:hidden;
我想用jQuery检查div是否有溢出超过div固定高度的元素。我该怎么做?
我有一个固定高度的div和overflow:hidden;
我想用jQuery检查div是否有溢出超过div固定高度的元素。我该怎么做?
实际上,您不需要任何 jQuery 来检查是否存在溢出。使用 element.offsetHeight
、element.offsetWidth
、element.scrollHeight
和 element.scrollWidth
,您可以确定元素的内容是否大于其大小:
if (element.offsetHeight < element.scrollHeight ||
element.offsetWidth < element.scrollWidth) {
// your element have overflow
} else {
// your element doesn't have overflow
}
查看操作示例:小提琴
但是,如果您想知道元素中的哪个元素是否可见,则需要进行更多计算。在可见性方面,子元素有三种状态:
如果要计算半可见项,则需要脚本:
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]);
}
}
如果你不想计算半可见的,你可以用一点点的差异来计算。
我有和OP相同的问题,这些答案都不符合我的需求。我需要一个简单的条件,一个简单的需求。
这是我的答案:
if ($("#myoverflowingelement").prop('scrollWidth') > $("#myoverflowingelement").width() ) {
alert("this element is overflowing !!");
}
else {
alert("this element is not overflowing!!");
}
此外,如果需要测试任一情况,则可以进行更改。scrollWidth
scrollHeight