转到另一页

时间:2015-10-08 13:42:11

标签: javascript jquery html css

我有一个网站,当用户向下滚动页面时标题会固定到位 - 标准内容。

因此,当我点击一个链接转到页面下方的锚标记时,我想要跳转到该部分的开头位于标题下方。

为了解决这个问题,我遵循了这里的建议:offsetting an html anchor to adjust for fixed header当我跳转到同一页面上的链接时,它非常有效。

但是,如果我尝试从不同的页面跳转到相同的锚标签 - E.G:

<a href="http://www.example.com/different-page.html#anchor-name">link text</a>

然后我不会在页面上的正确位置结束。我猜测发生了什么,我已经加载了 css之前被带到锚标记。结果,我被放置在页面上的某个点(锚点当前所在的位置)但是然后内容被加载并且css移动锚标记并且我离开了错误的位置 - 在标签附近

所以我的问题是,是否有可能在仍然使用一个简单的超链接的情况下这样做,或者我应该尝试劫持它并用javascript做一些事情来尝试让我到达页面上的正确位置?

更新

确定尝试使用jquery检查hash并在document.ready上导航到它,但它似乎仍然执行得太快。

如果我使用以下代码:

    if( $(".blogPost").length ) {
//        var anchorID = window.location.hash;
        //setTimeout(function() {
            $('html,body').animate({
                scrollTop: $("#comments").offset().top
            }, 'slow');
        //}, 3000);
    }

页面不会滚动到#comments元素。但是,如果我使用setTimeout并等待另外3秒 - 页面然后愉快地滚动到该元素。它好像需要额外的时间让页面完全加载?

0 个答案:

没有答案