Javascript Scroll Past Hash

时间:2011-04-18 13:00:48

标签: javascript hash scroll

我的页面顶部有一个固定的div,页面上有一些链接列表。用户可以单击一个链接运行onclick:

function setOffset(){   
location.hash = offset;  //where offset is some number I want as the hash  
scrollTo(0, 40);  
}  

我想要发生的是跳转到散列链接,然后滚动额外的40以使项目进入视图并从固定div下面输出。问题是scrollTo跳转到页面顶部并杀死哈希。有人有主意吗?

1 个答案:

答案 0 :(得分:0)

http://www.w3schools.com/jsref/met_win_scrollto.asp

scrollTo(xPos,yPos)

所以在你的代码中:

scrollTo(0, 40);

表示滚动到0位置(左边)和y位置40(距离顶部40像素)。您将需要计算哈希的位置,然后向其添加40,以滚动另外40个像素。您可以通过它的offSetTop属性来获取页面上元素的位置。

HTH。

编辑: 所以看起来在你的例子中你已经有了一个偏移量,我认为这是你试图滚动到的元素的偏移量,所以你的代码看起来像这样:

function setOffset(){   
scrollTo(0,offset + 40); 
}