2010-07-12 118 views
6

我有一长串嵌套的div。我在查询字符串中传递特定元素的ID(实际上是一个段落元素),并打开它的div和父onload。但是,列表太长了,有时打开的元素隐藏在窗口底部的下方。滚动到特定的元素w/jQuery

如何自动滚动用户的浏览器窗口,以便显示的元素位于屏幕的顶部?

你可能不需要这个,但备案...我的名单看起来是这样的:

<div id="div1"> 
    <p id="1"></p> 
    <div>stuff</div> 
    <p id="2"></p> 
    <div>stuff</div> 
    <p id="3"></p> 
    <div>stuff</div> 
</div> 
... 
<div id="divN"> 
    <p id="997"></p> 
    <div>stuff</div> 
    <p id="998"></p> 
    <div>stuff</div> 
    <p id="999"></p> 
    <div>stuff</div> 
</div> 
+3

它是无效的以数字开头关于IDS。 – user113716 2010-07-12 19:34:25

+4

是啊...这不是实际的代码。 :P – Bryan 2010-07-12 20:49:42

回答

12

你可以使用scrollIntoView功能。

$(document).ready(function() { 
    $('#divN').get(0).scrollIntoView(); 
}); 
+1

这是要跨浏览器工作吗? – 2010-07-12 19:33:05

+0

对这个答案+1,但要注意的是,如果目标已经在视图中,它不会滚动。 @Russ--据我所知,这被广泛支持。 – user113716 2010-07-12 19:38:19

+0

@Russ:我不这么认为,否则这将是一个非常不错的功能。但我真的觉得这听起来很好,是真的。如果其交叉浏览器,Resig&jQuery核心团队将实施它。 – jAndy 2010-07-12 19:39:27

6

的jQuery:

$(document).ready(function(){ 
    $(document.body).scrollTop($('#divN').offset().top); 
});