动态加载内容后,jQuery滚动到错误的偏移量

时间:2013-04-30 08:29:57

标签: javascript jquery

由于某种原因,这段代码通常向上/向下滚动到指定的targetDiv的开头,而是将页面向下滚动到页面下方,而不是targetDiv已经到达的末尾。

function postData(data, url, divAction, targetDiv) {
    $.ajax({
        type: 'POST',
        url: url,
        data: data,
        success: function(response) {
            if (divAction == 'hide') {
                $(targetDiv).hide();
                $(targetDiv).empty();
            }
            if (divAction == 'refresh') {
                $(targetDiv).html(response);
                $('html, body').animate({
                    scrollTop: '+=' + $(targetDiv).offset().top + 'px'
                }, 'fast');
            }
        },
        error: function() {
            alert('Error! Plese try again.');
        }
    });
    return false;
};

任何建议都赞赏!

2 个答案:

答案 0 :(得分:2)

你应该试试这个:

$('html, body').animate({
    scrollTop: $(targetDiv).offset().top
}, 'fast');

答案 1 :(得分:0)

这是 jsfiddle并且它有效。 `

targetDiv = $('#id1');
$(targetDiv).html("<iframe src=\"www.google.com\" />");
$('html, body').animate({scrollTop: '+=' + $(targetDiv).offset().top + 'px'

},'快')`