Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery滚动(元素的底部应该在页面的底部)_Javascript_Html_Jquery_Css - Fatal编程技术网

Javascript 如何使用jQuery滚动(元素的底部应该在页面的底部)

Javascript 如何使用jQuery滚动(元素的底部应该在页面的底部),javascript,html,jquery,css,Javascript,Html,Jquery,Css,在我的HTML页面上,我有可以通过按钮动态添加的内容。 当添加的内容不再在视口中时,我希望滚动以将其放入视口。 由于添加的内容始终添加在添加内容的可单击按钮下方,我始终希望滚动后元素的底部位于视口的底部,但我只能使用该功能将元素的顶部置于视口的顶部: if (!elementInViewport(document.getElementById("ElementId"))){ $([document.documentElement, document.body]).an

在我的HTML页面上,我有可以通过按钮动态添加的内容。 当添加的内容不再在视口中时,我希望滚动以将其放入视口。 由于添加的内容始终添加在添加内容的可单击按钮下方,我始终希望滚动后元素的底部位于视口的底部,但我只能使用该功能将元素的顶部置于视口的顶部:

if (!elementInViewport(document.getElementById("ElementId"))){
    $([document.documentElement, document.body]).animate({
        scrollTop: $("#ElementId").offset().top
    }, 2000);
}
if (!elementInViewport(document.getElementById("ElementId"))){
   document.getElementById("ElementId").scrollIntoView(false);
}
没有
scrollBottom
而不是
scrollTop
,当我将
offset()替换为
offset()时,top
。bottom
函数根本不做任何事情

我如何才能做到这一点?

尝试以下功能:

if (!elementInViewport(document.getElementById("ElementId"))){
    $([document.documentElement, document.body]).animate({
        scrollTop: $("#ElementId").offset().top
    }, 2000);
}
if (!elementInViewport(document.getElementById("ElementId"))){
   document.getElementById("ElementId").scrollIntoView(false);
}

请给出一个可复制的示例。您是否尝试了
scrollTop:$(“#ElementId”).offset().top-$(“ElementId”).height()
?谢谢@freedomn-m,这并没有完全滚动到我想要的位置,但这是一个好的开始。。但现在我使用的是来自ATP的解决方案,它非常有效nice@s.kuznetsov我试过了,但没那么快,sry@lxg95,没问题:)很好,谢谢:)我还将
html{scroll behavior:smooth;}
添加到我的css中,这样它的滚动效果会更好一些。