因为我有一个固定位置的标题,当点击锚链接时,一些内容被标题遮住了,所以我想修改位置,使请求的内容完全可见。我目前正在使用以下 jQuery 成功完成此操作:
$(document).ready(function () {
$("a[href^='#']").click(function () {
var id = $(this).attr("href");
var newPosition = $(id).offset();
if (newPosition != undefined) {
window.scrollTo(newPosition.left, newPosition.top - 50);
}
else {
window.scrollTo(0, 0);
}
return false;
});
});
然而,这种方法的问题是 URL 永远不会更改以添加 #anchor 部分,因此用户无法像我希望的那样为页面添加书签。
有没有办法做到这一点,网址会改变?我需要广泛的浏览器兼容性,所以我认为我不能更改 URL。我在想我也许可以监视窗口滚动事件并查看 URL 哈希是否已更改,如果是,则进行 50 像素调整。但是有更好的方法吗?