js获取元素的高度

原生javascript利用元素的height变化来实现元素的“消失”(即height变为0)和“出现”(即元素本身的height),但问题是元素的height一开始手动设置0,如何获取这时候元素本身的高度来实现元素的“出现”。

阅读 9.6k
6 个回答

这个问题难道不可以用CSS实现么?直接用display:none;消失,display:block;出现。

在设置为0之前,先把高度保存起来

用jQuery

$element.css({ height: '' });

如果display:none不是你想要的,那试试 height:auto

好像之前有这么个做法,把你的元素用js取到,然后用js设置 visibility:hidden; position:absolute;,再使用scrollHeight来取到你的元素的真实高度,之后将这两个样式还原,再用js去控制高度什么的。

两个思路:

  1. clone一份,设置position:absolute,然后设置top为较大的负值,然后使其显示出来,获取到DOM的宽高后,将其remove。
  1. 为该元素设置属性:{ position: "absolute", visibility: "hidden", display:"block" },获取高度后将属性还原。当然,处理的时候不只这么简单,可以参照一下jQuery的swap函数。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题