当我在URL中加载带有哈希标记的页面时,页面会加载然后跳转到锚标记。有没有办法阻止这种“跳跃”,要么直接将页面加载到锚标签,要么至少使滚动顺利?
我在Chrome和Firefox中看到了这个问题,但不是IE。
答案 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);
}
});
请注意,这只会在每页加载时运行一次。