Jquery 如何将可滚动div中的项目滚动到顶部
我有一个#联系人列表滚动条div,可以在页面中滚动。根据联系人XXXX ID,我希望设置“联系人列表”滚动条的下注位置,以确保联系人XXX项目位于页面顶部Jquery 如何将可滚动div中的项目滚动到顶部,jquery,Jquery,我有一个#联系人列表滚动条div,可以在页面中滚动。根据联系人XXXX ID,我希望设置“联系人列表”滚动条的下注位置,以确保联系人XXX项目位于页面顶部 <div id="contact-list-scroller"> <div id="contact_8965">stuff</div> <div id="contact_8966">stuff</div> <div id="contact_8967">s
<div id="contact-list-scroller">
<div id="contact_8965">stuff</div>
<div id="contact_8966">stuff</div>
<div id="contact_8967">stuff</div>
<div id="contact_8968">stuff</div>
<div id="contact_8969">stuff</div>
.....
</div>
但这只是滚动到顶部。思想?谢谢
var scrollTop = $('#contact_' + id).offset().top;
$('#contact-list-scroller').attr('scrollTop', scrollTop);
.看看jquery scrollTo插件-您可以使用它滚动到特定的DOM元素 我想你需要。顶。由于position()返回的值是相对于其父级的(与offset()不同),因此它使代码更加灵活。如果更改父容器的位置,代码将不会中断 例如:
var contactTopPosition = $("#contact_8967").position().top;
$("#contact-list-scroller").scrollTop(contactTopPosition);
或动画:
$("#contact-list-scroller").animate({scrollTop: contactTopPosition});
请参阅JSFIDLE:即使我遇到了同样的情况,也希望将元素滚动到顶部。现在,这种行为得到了直接的支持 只需使用
.scrollIntoView(true)
JavaScript方法
示例:
document.getElementById(“yourElementId”).scrollIntoView(true)代码>
更多信息:
虽然这是实验性的,但很快就会在每个浏览器中得到支持。您可以在以下网址找到更多信息:在尝试了上述所有方法但均未成功后,我在W3学校找到了此信息:
var-elmnt=document.getElementById(“Top”);
elmnt.scrollIntoView()代码>谢谢,但这似乎不起作用。如果#联系人列表滚动条有以下CSS:位置:绝对;左:0px;顶部:0px;右:0px;底部:0px;您可以考虑使用<代码>位置()/<代码>代替<代码> OffStand()/<代码>。第一个是相对于父项的,后一个是相对于文档的。谢谢,但是这个插件已经好几年没有更新了。安全吗?奇怪的是,这很有道理,但在我的应用程序中不起作用。可能是因为我使用的是绝对定位…可能是因为它没有考虑到当前的滚动位置?另外,如果它是一个很长的列表,最终返回的contactTopPosition为-2311等。我的演示使用的css与您在下面的评论中发布的相同。联系人列表滚动条的子div是否以某种方式设置了样式?也许我可以看一个现场演示?它一开始是有效的,但由于某些原因,它不能持续和重复地工作。。。我在同一个演示的另一个版本中添加了一些按钮:同一个问题,position()。top
并非每次都有效,找到了任何解决方案吗?我知道这个答案已经有一年多的历史了,但我今天在Chrome上尝试了这个解决方案,效果很好。FYIscrollIntoView对我不起作用。我有一个div,在导航项目上悬停时显示,在该div中我有2个div。一个只是一个列表,另一个是另一个可滚动且内容隐藏的div。当他们将鼠标移到左边的一个项目上时,我希望右边的div滚动到关于该项目的部分。scrollIntoView可以正确地滚动该div,但也可以将整个页面体向下滚动到该div的顶部。
$("#contact-list-scroller").animate({scrollTop: contactTopPosition});