javascript - 使用#anchors 移动带有额外定位的滚动条

标签 javascript scrollbar anchor

是否可以更改滚动条相对于新哈希标签的位置? 目前,页面滚动到使用#target 定位的元素的顶部,这是正常行为。有没有办法移动它,以便页面滚动到比 anchor 标记更远的页面下方 100 像素(在 anchor 标记之前添加额外的 100 像素)?

不确定是否应该使用 anchor 或 javascript 的狡猾放置。不确定我是否真的能够改变 anchor 的位置,所以我希望有一个 javascript 解决方案。

谢谢

最佳答案

您可以结合这个问题的答案:On - window.location.hash - Change?

加上一些额外的逻辑:

$(function(){
  var win = $(window); //cache your jq objects!
  function fixScrollTop(){
    win.scrollTop(win.scrollTop() + 100);
  }
  if(window.location.hash !== ""){
    fixScrollTop();
  }
  win.bind('hashchange', fixScrollTop);
});

哦,如果您可以控制 URL 中的#anchor,您可以(可能取决于您所追求的浏览器兼容性)将其设置为具有使浏览器滚动到的 ID 的任何元素的 ID

关于javascript - 使用#anchors 移动带有额外定位的滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7392095/

相关文章:

javascript - jQuery 插件仅使用最后一个元素的值

javascript - 滚动到另一个 DIV 时更改一个 DIV 的 css

css - 如何在 webkit 浏览器中隐藏滚动条?

java - 定义 Max 和 Min 时 ScrollBar 卡住

html - CSS 背景颜色被 Chrome 浏览器上的滚动条删除

html - 如何让Chrome和IE正确显示 block 超链接

javascript - TS 编译 - "noImplicitAny"不起作用

html - 同一页面内的 anchor 不起作用?

javascript - 如何获取 anchor 标记内的innerHTML,该标记仅检索内容而不检索其中的标记?

javascript - jQuery 使用 $(document).ready 加载外部 JavaScript 失败