jQuery:如何获得带动态内容的$(body)[0] .scrollHeight?

时间:2011-08-05 19:51:33

标签: jquery

$("#toggle").click(function() {
    $("p").toggle(function() {
        // $('body')[0].scrollHeight <-- this is it, but not in my case
    });
});
<a id="toggle">Toggle</a>

<p>content</p>
<p>...</p>
...a hundred more <p>'s that enough to make the scrollbar appear...
<p>...</p>

我正在尝试在动态更改页面内容时获取scrollHeight。

我不想在注释行中使用该方法的原因是因为我有其他事件取决于这个动态scrollHeight,我真的不想在每次单击时写相同的东西。

我正在寻找像

这样的东西
$('window').scrollHeightChanged(function() {
    // do this
    // do that
});

但不是

setInterval(function() {
    // check scrollHeight
}, 10);
顺便说一句,我试过$('#wrapper')。resize(),它只适用于IE

更新

我发现自己是一个解决方案:jQuery resize事件插件,它使resize()适用于所有元素。这不是我想要的,但至少它检测到元素大小的变化。 http://benalman.com/projects/jquery-resize-plugin/

1 个答案:

答案 0 :(得分:0)

每当您在页面上显示/隐藏任何内容或将页面上的任何动态内容添加到任何容器时,您基本上都可以找到滚动高度。没有会在页面上更改内容的事件。

此外,只有在动画完成时才能找到滚动高度,以防您使用任何动画。