我只是在学习 javascript(字面意思),我有一些 JS(见下文)可以将页面 anchor 从页面顶部向下移动 90 像素,以防止 anchor 的内容被固定顶部元素。单击同一页面上指向 anchor 的链接时,效果非常好。
我遇到的问题是当我单击指向不同页面上的 anchor 的链接时。当新页面加载时, anchor 加载到页面顶部,并部分隐藏在固定顶部元素下方。
我怀疑我需要在每个页面上进行某种类型的 onLoad 事件来检查 anchor 哈希,但我对此太陌生了,无法弄清楚。
感谢任何帮助,谢谢!
统计信息:我这样做是为了我公司的网络帮助。我们有大约 280 多个帮助页面和 2,500 个左右的 anchor 。我希望在包含或 header 中添加一些 JS 可以解决我的问题。
注意:我正在使用的脚本是作为另一个 stackoverflow 问题的答案找到的,并稍作修改。
$(function(){
$('a[href*=#]').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
&& location.hostname == this.hostname) {
var $target = (this.hash);
$target = target.length && target || ('[name=' + this.hash.slice(1) + ']');
if ($target.length) {
var targetOffset = target.offset().top - 90;
$('html,body').animate({scrollTop: targetOffset}, 1000);
return false;
}
}
});
});
最佳答案
这应该工作得很好。在 Firefox 和 Chrome 中测试。
$(function(){
if(location.hash !== "") {
window.scrollTo(0,window.pageYOffset-90);
}
});
关于新页面上的 Javascript 加载以将 anchor 移动到顶部固定元素下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6157416/