Javascript clientHeight返回零

Javascript clientHeight返回零,javascript,html,css,Javascript,Html,Css,我正在使用JavaScript动态创建DOM元素。我需要得到一个div的高度来做向下滑动动画。但当我使用clientHeight时,它总是返回0。远视也会这样做。我在尝试console.log()时得到了div。所以这并不是因为元素没有加载到DOM中。最初,我为div设置了style display:none来隐藏它。这就是问题的原因吗?请有人帮帮我 document.getElementsByClassName('myDiv')[0].parentNode.children[1].client

我正在使用JavaScript动态创建DOM元素。我需要得到一个div的高度来做向下滑动动画。但当我使用clientHeight时,它总是返回0。远视也会这样做。我在尝试console.log()时得到了div。所以这并不是因为元素没有加载到DOM中。最初,我为div设置了style display:none来隐藏它。这就是问题的原因吗?请有人帮帮我

document.getElementsByClassName('myDiv')[0].parentNode.children[1].clientHeight;
我尝试了以下代码以避免显示问题:无。clientHeight仍然返回0

if(obj.style.display == "none"){ // if it's allready hidden we slide it down
   obj.style.visibility = "hidden";
   obj.style.display = "block";
   height = obj.offsetHeight;
   obj.style.visibility = "visible";
   slideDown(obj,0,height,Math.ceil(height/timeToSlide));
} 

使用
显示设置样式的元素:无将为其维度注册0。尝试应用以下方法:

div.myClass { position:absolute; left:-999em; }

同样的效果,但是您的
div
仍然有其尺寸。

如果您使用jQuery,您可以得到如下高度

$(document.getElementsByClassName('myDiv')[0].parentNode.children[1]).height()

您需要添加以了解宽度。。。您可以使用不透明度根据需要隐藏内容

CSS
或者您可以使用Chis Hardie置换解决方案。

我尝试了“可见性:隐藏”、“显示:块”和“clientHeight”。它仍然返回零。为什么要将
可见性设置为
隐藏?我在回答中提到的这些样式将
div
移到屏幕外,实际上是隐藏了它。这是可行的,但问题是我得到的元素高度是20,即使它有60像素。当我给左边:-999em高度降低到20px。有什么解决办法吗?谢谢,伙计们,有问题了。我没有指定宽度,所以当我向左移动元素时,它的宽度会增加,因此高度也会随之降低。感谢您的支持:)位置:绝对在我的案例中完成了这项工作,我希望不使用任何库。在隐藏元素之前,将元素高度保存在变量中,如果您的元素具有CSS相对高度(例如
高度:100%
),请确保其所有父元素也具有高度值,包括html元素。@rafaelcastrocouto我正在创建一个最初不可见的toggle description div。我也不知道div的确切高度。它随描述的内容而变化。所以我把高度设为自动高度。
.hidden {opacity: 0;}