从URL和历史记录中删除锚点

用户名

我刚刚在博客中添加了一个从上到下的按钮, <a href='#top'...

我遇到了一个烦人的行为,在其他网站的“自上而下”按钮中看不到:

  1. #top后缀添加到URL -我得到这一个,但我想改变它,所以它不会影响到原来的URL。
  2. 按下该按钮并发送回页面顶部后,随后按一下返回按钮(alt +向左),将我带到同一页面中单击“返回顶部”按钮的位置-这是一个我什么都没有。如何防止此条目进入历史记录?

我试图将此处建议的代码-https: //stackoverflow.com/a/20198758/1692261-放入我的head标签中,但效果为0。

编辑:我在这里添加了另一个要求-我想仅针对该按钮禁用上述行为。将来,我可能会在这里和那里使用锚,并且希望发生原始行为。这是否可能,或者必须全部禁止还是全部允许?

ingoCollat​​z

Window.scroll()方法应该可以为您工作。

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/scroll

window.scroll()方法对网址没有任何影响。它只是告诉窗口滚动到特定坐标(上:y,左:x)

代替使用anchor标签,向按钮添加一个eventListener,该事件将触发Window.scroll()

button.addEventListener("click", function () {
  window.scroll({
  top: 0,
  left: 0,
  behavior: 'smooth'
  });
});

您可以使用以下方法计算window.scroll()目标相对于body元素的确切位置:

const bodyRect = document.body.getBoundingClientRect(),
      elemRect = element.getBoundingClientRect(),
      offset   = elemRect.top - bodyRect.top;

然后将计算出的偏移量用作window.scroll()中的最大值

window.scroll({
  top: offset,
  left: 0,
  behavior: 'smooth'
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Bitbucket历史记录中完全删除提交

来自分类Dev

如何从git历史记录中完全删除提交

来自分类Dev

从历史记录中删除单个提交

来自分类Dev

从git历史记录中删除提交(永远)

来自分类Dev

从git历史记录中删除未使用的资产

来自分类Dev

恢复SVN中已删除文件的历史记录

来自分类Dev

Git-从历史记录中删除提交

来自分类Dev

从提交历史记录中删除敏感的配置数据

来自分类Dev

从所有git历史记录中删除文件

来自分类Dev

从历史记录中删除视图-Ionic2

来自分类Dev

如何从bash历史记录中删除所选结果?

来自分类Dev

如何从Firefox的浏览器历史记录中删除输入的URL?

来自分类Dev

从Git历史记录中删除大文件

来自分类Dev

从庞大的Git存储库中删除历史记录

来自分类Dev

Git-从分支的历史记录中删除文件

来自分类Dev

如何从bash历史记录中删除所选结果?

来自分类Dev

如何从Firefox的浏览器历史记录中删除输入的URL?

来自分类Dev

如何从bash历史记录中删除重复项?

来自分类Dev

为什么历史记录和.bash_history不同,如何删除历史记录中的条目?

来自分类Dev

锚点导航和历史记录更改

来自分类Dev

无法从Git历史记录中删除目录

来自分类Dev

从Bash历史记录文件中删除某行

来自分类Dev

如何从历史记录中删除一行?

来自分类Dev

从历史记录中删除git commit

来自分类Dev

从解析中删除推送通知历史记录条目

来自分类Dev

通过javascript从浏览器历史记录中删除URL

来自分类Dev

从本地历史记录中删除git merge commit

来自分类Dev

恢复SVN中已删除文件的历史记录

来自分类Dev

从历史记录中删除合并的提取请求

Related 相关文章

热门标签

归档