1

我尝试滚动到通过 jquery 切换打开的 Div 的底部。

我试过这样:

    $(document).ready(
    function() {
        $(".menuitem").click(function() {
            $('#'+$(this).attr("id")+'sub').toggle(1000);
            $('html, body').animate({"scrollTop": $('#'+$(this).attr("id")+'sub').offset().top}, 'fast');
    }
);

使用 scrollTop 之后的代码:$('#'+$(this).attr("id")+'sub')我得到了从切换中扩展的 div 的正确 id。

问题:我在 div 的顶部,而不是在底部,所以用户看不到内容 - 只有第一行。我必须以某种方式将 div 的最终大小添加到滚动中,但是如何?

4

1 回答 1

1

获取元素的高度并将其添加到滚动条中

 $('#'+$(this).attr("id")+'sub').offset().top 
 + $('#'+$(this).attr("id")+'sub').height()

但是,您需要在元素显示后执行此操作,否则它将无法获得正确的高度,因此请将其添加到切换回调中,如下所示:

$(".menuitem").click(function() {
    $('#'+$(this).attr("id")+'sub').toggle(1000, function() {
        $('html, body').animate({
            "scrollTop": $('#'+$(this).attr("id")+'sub').offset().top
                       + $('#'+$(this).attr("id")+'sub').height()
        }, 'fast')
    });
}
于 2013-11-07T02:02:17.617 回答