有没有办法自动滚动到新元素的底部?我看过scrollTo插件,但它已经有几年了。有没有办法用基本的jQuery api做到这一点?
答案 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>
答案 2 :(得分:1)
通过扩展@Edgar Villegas Alvarado的解决方案更加动态:
var htmlObject = $("<p>sample text</p>");
$('#container').append(htmlObject);
$('body, html').animate({ scrollTop: $(htmlObject).offset().top }, 1000);