将页面直接加载到锚标记

时间:2014-02-11 18:05:45

标签: javascript jquery anchor pageload

当我在URL中加载带有哈希标记的页面时,页面会加载然后跳转到锚标记。有没有办法阻止这种“跳跃”,要么直接将页面加载到锚标签,要么至少使滚动顺利?

我在Chrome和Firefox中看到了这个问题,但不是IE。

1 个答案:

答案 0 :(得分:2)

如果您仍然遇到跳跃问题,可以使用jQuery:

//Use a RegEx pattern to search for an id, if present
var pattern = new RegExp('\#(.*)');
var id = pattern.exec(window.location)[0].replace('#','');
//Prevent the browser's default behavior of jumping to the id
document.location = '#';
//When the page finishes loading, smoothly scroll to the specified content
$(document).ready(function() {
    if(id != "") {
        $('html,body').animate({
            scrollTop: $('#' + id).offset().top,
        }, 650);
    }
});

请注意,这只会在每页加载时运行一次。