这是我自己的插件(将在列表顶部的元素位置专门为overflow-y : auto
不能与overflow-x
工作。!):
注意:elem
是元素的HTML选择器该页面将滚动到。任何的jQuery的支持,如:#myid
,div.myclass
,$(jquery object)
,[DOM对象]等
jQuery.fn.scrollTo = function(elem, speed) {
$(this).animate({
scrollTop: $(this).scrollTop() - $(this).offset().top + $(elem).offset().top
}, speed == undefined ? 1000 : speed);
return this;
};
如果你不需要它是动画,然后使用:
jQuery.fn.scrollTo = function(elem) {
$(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top);
return this;
};
如何使用方法:
$("#overflow_div").scrollTo("#innerItem");
$("#overflow_div").scrollTo("#innerItem", 2000); //custom animation speed
注:#innerItem
可以在里面#overflow_div
任何地方。它并不一定是一个直接的孩子。
在Firefox(23)和Chrome(28)中测试。
如果要滚动整个页面,请选择this question。
由于您的更新而删除了我的答案。但相信我,之前有过这种相同的态度,有很多浏览器的位置和边距等怪癖......插件是一个简单得多的路线和更少的时间消耗,在** GZip之前只有3K **。 – 2010-02-27 02:39:56
无论如何请使用scrollTo插件。这并不困难。 '$(“#container”)。scrollTo(target,duration,options)'。 Target仅仅是一个'#anchor'。完成。 – 2010-02-27 02:43:56
它似乎应该有知识在那里做这个没有插件。明天病开始阅读信息来源 – mkoryak 2010-02-27 02:46:41