jQuery:滚动到新添加的元素?

时间:2011-07-09 07:50:18

标签: jquery

有没有办法自动滚动到新元素的底部?我看过scrollTo插件,但它已经有几年了。有没有办法用基本的jQuery api做到这一点?

3 个答案:

答案 0 :(得分:8)

你可以这样做:

$('body, html').css("scrollTop", $("#new_element").offset().top);

如果你想要'动画',你可以这样做

$('body, html').animate({ scrollTop: $("#new_element").offset().top }, 1000);

希望这会有所帮助。干杯

答案 1 :(得分:1)

您可以使用标准的JavaScript scrollTo函数,并使用jQuery的offset获取新元素的位置。根据这一点,你应该开始:

window.scrollTo(0, $("#newElem").offset().top);

以下是一个显示正常工作的示例:

var newElem = "<div style='width:100px; height:100px; background-color:#ff0000; margin-top:500px' id='newElem'></div>";
$("body").append(newElem);
window.scrollTo(0, $("#newElem").offset().top);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

jsfiddle

答案 2 :(得分:1)

通过扩展@Edgar Villegas Alvarado的解决方案更加动态:

    var htmlObject = $("<p>sample text</p>");

    $('#container').append(htmlObject);
    $('body, html').animate({ scrollTop: $(htmlObject).offset().top }, 1000);