我有一个#contact-list-scroller div可以在页面中滚动。基于联系人ID,我希望#contact-list- contact_XXXX滚动位置可以下注,以确保contact_XXX项位于页面顶部。
<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>
这是我到目前为止所知道的:
$('#contact-list-scroller').scrollTop($('#contact_' + id).scrollTop());
但这只是滚动到顶部。想法?谢谢
发布于 2011-05-01 15:56:56
我想你会需要position().top。因为position()返回的值是相对于其父对象的(与offset()不同),所以它使您的代码更加灵活。如果你改变了你的父容器的位置,你的代码不会崩溃。
示例:
var contactTopPosition = $("#contact_8967").position().top;
$("#contact-list-scroller").scrollTop(contactTopPosition);
或动画:
$("#contact-list-scroller").animate({scrollTop: contactTopPosition});
请参阅jsfiddle:http://jsfiddle.net/5zf9s/
发布于 2018-09-19 08:05:21
在尝试了上面所有的方法都没有成功之后,我在W3schools上找到了这个:
var elmnt = document.getElementById("Top");
elmnt.scrollIntoView();
发布于 2011-05-01 13:13:04
var scrollTop = $('#contact_' + id).offset().top;
$('#contact-list-scroller').attr('scrollTop', scrollTop);
https://stackoverflow.com/questions/5846595
复制相似问题