Javascript 如何检查container div是否隐藏了某些内容?

Javascript 如何检查container div是否隐藏了某些内容?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,想象一下,我们有一个带有overflow:hidden样式的容器div 我们如何检查它现在是否真的隐藏了某些东西?尝试以下方法 $(id).is(":visible") 如果容器可见,上述代码将返回true,否则将返回false $(id).is(":visible") 如果容器可见,上述代码将返回true,否则将返回false。如果检查子元素高度,则高度将正常: 如果$'container'.height

想象一下,我们有一个带有overflow:hidden样式的容器div

我们如何检查它现在是否真的隐藏了某些东西?

尝试以下方法

$(id).is(":visible")
如果容器可见,上述代码将返回true,否则将返回false

$(id).is(":visible")
如果容器可见,上述代码将返回true,否则将返回false。如果检查子元素高度,则高度将正常:

如果$'container'.height<$'container>div'.height{ $'pre'.html$'container'.height++$'container>div'.height; } 容器{高度:50px;背景:红色;溢出:隐藏;} 容器分区{高度:200px;宽度:100px;背景:黑色;} .如果您检查子元素的高度,则高度可以:

如果$'container'.height<$'container>div'.height{ $'pre'.html$'container'.height++$'container>div'.height; } 容器{高度:50px;背景:红色;溢出:隐藏;} 容器分区{高度:200px;宽度:100px;背景:黑色;} 您可以将元素的高度与其scrollHeight属性和宽度与其scrollWidth属性进行比较:

变量$divs=$'div'.filterfunction{ 返回$this.css'overflow'==hidden; }; $divs.toggleClass“溢出”,函数{ 返回$this.height<$this.prop'scrollHeight'| |$this.width<$this.prop'scrollWidth'; }; div{ 高度:30px; 溢出:隐藏; } .溢出{ 背景:红色; } 泰特尔 呃 埃尔兹 R 您可以将元素的高度与其scrollHeight属性和宽度与其scrollWidth属性进行比较:

变量$divs=$'div'.filterfunction{ 返回$this.css'overflow'==hidden; }; $divs.toggleClass“溢出”,函数{ 返回$this.height<$this.prop'scrollHeight'| |$this.width<$this.prop'scrollWidth'; }; div{ 高度:30px; 溢出:隐藏; } .溢出{ 背景:红色; } 泰特尔 呃 埃尔兹 R 您可以将元素的clientHeight与其scrollHeight进行比较:

您还可以轻松地将其转换为自己的jQuery方法:

var parentWidth = $('.parent').width();
var parentHeight = $('.parent').height();
var childWidth = $('.child').width();
var childHeight = $('.child').height();

if(childWidth > parentWidth || childHeight > parentHeight){
   //something is hidden
};
您可以将元素的clientHeight与其scrollHeight进行比较:

您还可以轻松地将其转换为自己的jQuery方法:

var parentWidth = $('.parent').width();
var parentHeight = $('.parent').height();
var childWidth = $('.child').width();
var childHeight = $('.child').height();

if(childWidth > parentWidth || childHeight > parentHeight){
   //something is hidden
};

如果要检查父元素中的子元素,则需要比较维度以查看子元素是否大于父元素

我不确定的是.height和.width是否会抓住孩子的真实高度和宽度,或者仅仅是家长提供的边界


如果这只是div中的文本,我不确定如何检查。

如果要检查父元素中的子元素,则需要比较尺寸,以查看子元素是否大于父元素

我不确定的是.height和.width是否会抓住孩子的真实高度和宽度,或者仅仅是家长提供的边界



如果这只是div中的文本,我不知道如何检查。

您可以将元素的高度与其scrollHeight属性进行比较。但如果此元素也有溢出隐藏集,则需要进行筛选。现在,它实际上取决于您的期望。为什么它被否决?您是在检查元素、文本还是两者都检查?div可能包含的所有内容。您可以将元素的高度与其scrollHeight属性进行比较。但如果此元素也有溢出隐藏集,则需要进行筛选。现在,这实际上取决于您的期望。为什么它被否决?您是否检查元素、文本或两者?div可能包含的所有内容。OP询问的是div内部的内容,而不是div本身。OP询问的是div内部的内容,不是div本身。那很好……我从来没有想到过,并不是所有的元素都能使容器溢出。textnodes呢?容器宽度上的内容溢出怎么办?我刚刚发布了一个答案来包含宽度。不过,不知道如何处理文本。@fauxserious请看Rory或我的答案:这很好……我从来没有想到,并非总是有一些元素会使容器溢出。textnodes呢?容器宽度上的内容溢出怎么办?我刚刚发布了一个答案来包含宽度。但是不知道如何处理文本。@fauxserious请看Rory或我的答案:我喜欢jQuery原型方法的想法,但我不喜欢在其中使用none-jq方法;当然是我的意见。作为旁注,每个匹配集只处理一个元素我喜欢jQuery原型方法,但我不喜欢在其中使用nonejq方法;当然是我的意见。作为旁注,每个匹配集只处理一个元素