【问题标题】:jQuery scroll animation to anchor even if the link redirects to another page即使链接重定向到另一个页面,jQuery 滚动动画也会锚定
【发布时间】:2013-01-22 10:46:21
【问题描述】:

假设我有一个名为index.html 的页面。在文档中,我有一个指向另一个页面中的锚点的链接。所以让我们说:

<a href="page.html#anchor" class="scroll">Link</a>

现在我有以下 jQuery 脚本,可以通过动画滚动到同一文档内的锚点:

$(".scroll").click(function(event){     
    event.preventDefault();
    $('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});

但是,如果锚点位于同一页面中,则此方法有效。我怎样才能让它在另一个页面上工作呢?当我点击链接时,我希望它转到另一个页面并滚动到锚点。

【问题讨论】:

    标签: jquery hyperlink scroll anchor


    【解决方案1】:

    你需要让你的锚点像

    <a href="2nd.html#anchor_temp">Go</a>
    

    因为你无法阻止浏览器的默认滚动行为

    文档准备好后,您需要从 URL 中查看哈希标记值,然后删除 _temp 并对其进行动画处理

    $(document).ready(function(e){  
        var str= location.hash; 
        var n=str.replace("_temp","");
        $('html,body').animate({scrollTop:$(n).offset().top}, 500);
    });
    

    我希望这会有所帮助:)

    【讨论】:

    • 这个你可以在第二页使用
    • 是的,我把它放在了第二页
    • 那是你的链接 Link ?,尝试提醒(location.hash);
    • 链接在第一,JS在第二。警报有效!它说#anchor
    • 打开控制台 FireBug 或开发工具,你的意思是直接进入锚点
    猜你喜欢
    • 2017-03-05
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 2021-09-18
    • 2013-05-08
    相关资源
    最近更新 更多