【问题标题】:Javascript Scroll Past HashJavascript滚动过去哈希
【发布时间】:2011-04-18 13:00:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript hash scroll


    【解决方案1】:

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

    scrollTo(xPos, yPos)

    所以在你的代码中:

    scrollTo(0, 40);
    

    表示滚动到 0 的 x 位置(左侧)和 40 的 y 位置(从顶部向下 40 像素)。您将需要计算哈希的位置,然后将其添加 40,以额外滚动 40 像素。我相信你可以通过它的 offSetTop 属性来获取页面上元素的位置。

    HTH。

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

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

    【讨论】:

    • 不幸的是,偏移量是唯一的 id,但 offSetTop 似乎正是我所需要的。谢谢!
    • 没问题,我不得不编辑这个答案很多,因为它对我来说是一大早(我还没有喝咖啡),如果有任何混淆,很抱歉。
    • @Vidas 感谢您的链接,但在这个问题的上下文中,我相信 W3 Schools 链接提供了有价值的信息,在将来我使用它作为参考之前,我会参考您的链接。很棒的信息!:)
    猜你喜欢
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 2013-12-23
    • 2013-03-31
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多