新页面上的 Javascript 加载以将 anchor 移动到顶部固定元素下方

标签 javascript jquery html anchor onload

我只是在学习 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/

相关文章:

javascript - .html() 之后的操作

jQuery 检测 Chrome 框架

jQuery .show ('slide' ,{ 方向 : 'right' }) doesn't work, 但 .show ('slide' ) 确实

html - 有时链接在第一次点击时不起作用

javascript - jquery 下一个 div 元素选择

javascript - 有没有办法在网站中嵌入和设计维基百科文章的样式?

javascript - 如何重新启用禁用的谷歌地图 v3 拖放、缩放等

asp.net - CSS如何改变文本的背景颜色?

javascript - moment.js 在 Angular 1.5 过滤器上使用时,为除第一个条目之外的每个条目返回无效日期

javascript - 如何在ajax中正确使用for循环