Javascript scrollHeight属性仅在更改的内容较高时更新

Javascript scrollHeight属性仅在更改的内容较高时更新,javascript,jquery,Javascript,Jquery,我正在观察scrollHeight的奇怪行为,或者我误解了它是如何/何时更新的。我注意到,当替换overflow:hidden元素中的内容并尝试通过scrollHeight属性显式设置其高度时,它只会在替换的内容比以前高时调整到正确的高度,这样我就可以使用CSS制作动画。将内容替换为较短或较少的内容,元素的scrollHeight属性将保持较大的值。我在下面jQuery中的一个简单测试中概述了它。我在Safari、Chrome和Firefox中观察到了这一点 为什么会这样 $(window).r

我正在观察scrollHeight的奇怪行为,或者我误解了它是如何/何时更新的。我注意到,当替换overflow:hidden元素中的内容并尝试通过scrollHeight属性显式设置其高度时,它只会在替换的内容比以前高时调整到正确的高度,这样我就可以使用CSS制作动画。将内容替换为较短或较少的内容,元素的scrollHeight属性将保持较大的值。我在下面jQuery中的一个简单测试中概述了它。我在Safari、Chrome和Firefox中观察到了这一点

为什么会这样

$(window).resize(function() {
    $cart = $('#cart')
    $cart.css('height', $cart.prop('scrollHeight'))
})

就我所知,Javascript高度计算对于溢出是必要的:隐藏元素需要为动画切换。如果我放弃动画,当然,我只是在0和自动之间切换CSS高度,但这看起来像裤子!