获取绑定到onClick事件的元素的高度而不单击它

时间:2018-06-11 12:18:34

标签: javascript jquery

我正在尝试将元素的高度设置回原始状态,但默认情况下隐藏元素(display:none),并且只能通过单击事件激活。

如何在不首先实际点击元素的情况下获取元素的高度?

现在我正在使用此代码,但它当然将高度定义为0,因为该元素尚未显示。

var initHeightInner = $('#div').find('.list').height();

2 个答案:

答案 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()