首页  >  文章  >  web前端  >  为什么“jQuery.height()”返回隐藏元素的值?

为什么“jQuery.height()”返回隐藏元素的值?

Susan Sarandon
Susan Sarandon原创
2024-10-28 05:23:02710浏览

Why Does `jQuery.height()` Return a Value for a Hidden Element?

jQuery: height()/width() 和 "display:none"

在此场景中,ID 为“target”的元素" 通过 CSS 将其显示属性设置为“none”。但是,当使用 $("#target").height() 检查其高度时,会获得一个非零值。

此行为源于 jQuery 在访问隐藏元素的维度时对隐藏元素的内部处理。如果元素的 offsetWidth 为 0(被 jQuery 视为“隐藏”),则库会尝试确定其高度。

为了实现此目的,jQuery 会临时将以下属性应用于该元素:

  • 位置:“绝对”
  • 可见性:“隐藏”
  • 显示:“块”

然后使用 getWidthOrHeight(... ),根据需要添加边框/填充,并恢复原始属性。

本质上,jQuery 会谨慎地显示元素 С这发生在 UI 线程更新之前,因此用户仍然不知道该过程。

此机制使 .height()/.width() 甚至可以在隐藏元素上运行,前提是它们的父元素可见。因此,您可以调用 .height()/.width() ,而无需手动执行显示/隐藏序列,因为它是由这些方法内部处理的。

以上是为什么“jQuery.height()”返回隐藏元素的值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn