说我有一个垂直显示的元素列表。
如何更改窗口位置,以便使用javascript在页面顶部显示列表中的指定元素?
此方法适用于主流浏览器(即6+,firefox,safari,chrome)吗?
由于
答案 0 :(得分:2)
window.scrollTo(xPosition, yPosition)
此方法滚动窗口的内容,指定的坐标成为可视区域的左上角。两个参数都是整数,它们代表x和y坐标(以像素为单位)。此方法仅在文档的某些区域在窗口的当前可视区域内无法查看且窗口滚动条的可见属性必须设置为true(启用)时才有用。
将其与code to find an element's positionetvoilà!
结合使用答案 1 :(得分:0)
我在这里使用jQuery,但您可以轻松地将逻辑调整到任何其他JS库甚至POJ:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4 -- Should move to the top in 5 seconds</li>
<li>Item 5</li>
</ul>
function changeList(){
$('li:nth-child(4)').prependTo('ul');
}
$(document).ready(function(){
var t = setTimeout('changeList()',5000);
});
Demo(请务必查看来源)
注意:更新了代码&amp;演示不使用ID选择器并根据他在评论中的请求使用setTimeout()。
答案 2 :(得分:0)
您也可以使用scrollIntoView
功能。如果你想要查看的元素有一个引用(例如var el
),只需调用el.scrollIntoView (true)
将该元素放在窗口的顶部,或者el.scrollIntoView(false)将它放在窗户的底部。
不幸的是,没有(简单)的意思,因此以元素为中心: - (