我正在尝试将元素的高度设置回原始状态,但默认情况下隐藏元素(display:none),并且只能通过单击事件激活。
如何在不首先实际点击元素的情况下获取元素的高度?
现在我正在使用此代码,但它当然将高度定义为0,因为该元素尚未显示。
var initHeightInner = $('#div').find('.list').height();
答案 0 :(得分:0)
您可以将链接的不透明度设置为0和/或可见性:隐藏。然后你就可以得到它的实际高度。 以下是向您展示差异的示例
console.log('Hidden', document.getElementsByClassName('hidden')[0].clientHeight)
console.log('Opacity', document.getElementsByClassName('opacity')[0].clientHeight)
.hidden{
display:none;
}
.opacity{
opacity:0;
position:absolute;
left:-9999px;
top:-9999px;
}
<a href="#" class="hidden">Hidden</a>
<a href="#" class="opacity">Zero opacity</a>
答案 1 :(得分:0)
这是正常的,因为您的元素最初定义为height
等于零。因此,您必须删除height: 0;
属性并仅使用visibility: hidden
...但在这种情况下,它可能会影响此元素在click事件上的动画。所以你可以尝试在你的.list元素下面添加一个新的div(例如带有.list-body类)并尝试从这个元素中获取高度。
喜欢:var initHeightInner = $('#div').find('.list-body').height()