删除/避免向 URL 添加目标链接

2023-12-29

对于这里的 jQuery/JavaScript 专家来说,这可能很简单,但我在网络上找不到解决方案。

Case

我在页面底部有一个链接,上面写着Back to Top,该链接只是一个目标链接,如下所示:

<a href="#top" class="standard">Back to Top</a>

因此,当您单击它时,它会跳转到页面顶部。简单的。

Problem

当点击目标链接时,id#top添加到页面的URL中,即:

http://website.com/about-us/#top

Question

有没有办法删除或避免获取该 ID#top添加到页面的URL但保留页面跳转到顶部的功能?

非常感谢任何对此的帮助。


无论哪种情况(jQuery 或普通 JavaScript),您都需要执行以下操作:

  • 选择所有锚标记href被设定为#top
  • 创建一个“跳转”函数,将页面位置设置为顶部并returns false防止默认链接行为
  • 将“跳转”功能绑定到click找到所有节点的事件

要跳跃,您有多种选择。我在下面的第一个示例中提供了它们(特定于 jQuery 和 JS)。

使用 jQuery

jQuery 使选择并绑定到click事件容易。然后您可以使用 jQuery 或直接 JavaScript 跳转到页面顶部。

$('a[href="#top"]').click(function() {

   //
   // To jump, pick one...
   //

   // Vanilla JS Jump
   window.scroll(0,0)

   // Another Vanilla JS Jump
   window.scrollTo(0,0)

   // jQuery Jump
   $('html,body').scrollTop(0);

   // Fancy jQuery Animated Scrolling 
   $('html,body').animate({ scrollTop: 0 }, 'slow');

   //
   // ...then prevent the default behavior by returning false.
   //

   return false;

});

jQuery 的animate http://api.jquery.com/animate/提供动画持续时间和缓动选项以及设置回调的功能。

普通 JavaScript

您也可以自始至终使用 Vanilla JS...但是,查询和绑定变得有点痛苦。

现代浏览器支持document.querySelectorAll() https://developer.mozilla.org/en-US/docs/Web/API/Document.querySelectorAll这将允许您获取所有链接元素,就像使用 jQuery 一样:

var links = document.querySelectorAll('a[href="#top"]');

然后循环元素并绑定“jump”:

for (var i = links.length - 1; i >= 0; i--) {
  links[i].onclick = function() { window.scroll(); return false; };
};

如果您的目标浏览器没有为您提供querySelectorAll您只需循环遍历所有锚标记即可找到链接到的锚标记#top:

var links = document.body.getElementsByTagName('a');
for (var i = links.length - 1; i >= 0; i--) {
  var l = links[i];
  if(l.getAttribute('href') === '#top') {
    l.onclick = function() { window.scroll(); return false; }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除/避免向 URL 添加目标链接 的相关文章

随机推荐

  • Netlogo:运行时创建小世界网络

    我正在尝试生成一个小世界类型的网络 https en wikipedia org wiki Small world network https en wikipedia org wiki Small world network 在我创建的
  • Mongodb 读取首选项

    SETUP 我有 mongodb 的一个主实例和两个辅助实例 两个辅助实例之一托管在与我的 Web 应用程序相同的区域中 我正在使用 pymongo 进行连接 QUERY 如何以较低的延迟连接到辅助设备 目前我正在这样做 from pymo
  • 如何使用 jquery 动态地将新项目添加到此表单内的下拉列表中?

    document ready function var element form element on mousedown function event element
  • Javascript:仅读取大型服务器文本文件的最后 x 行数

    今天我正在处理非常大的日志文件 我想通过 RPi 上的 lighttpd 显示它们 但它们每天都在变大 因此很快将需要很长时间来加载 为了防止这个问题 我想我可以有一个按钮来读取 比如说这个日志文件的最后 500 行 当然我对javascr
  • 如何在 Windows 10 上弹出 USB 驱动器(IOCTL_STORAGE_EJECT_MEDIA 不再足够)

    在 Windows 上弹出 USB 驱动器的惯例是按以下顺序进行 CreateFile drive letter with read write rights file share read and write DeviceIoContro
  • Eclipse 风格工具提示库?

    Does anyone know of an open source swing tooltip library that works like eclipse s tooltips Specifically the functionali
  • 在 WinForms 中,UI 中是否可以有多个线程?

    我想答案是否定的 我在 stackoverflow 上检查了类似的问题 但它们似乎根据特定解决方案的需要走了不同的方向 但可能错过了一些东西 WinForms 应用程序中是否可以有多个 UI 线程 我正在重构并想知道是否应该使用 Concu
  • 仅 WPF TabItem 标题样式

    我正在编写一个 WPF 应用程序 并尝试设置 TabItem 标头的样式 仅在选择时显示背景颜色更改的边框 问题是 当我添加该样式时 它会弄乱 TabItem 中 TextBlock 项目的样式 我不是 WPF XAML 专家 下面是我在
  • 动态创建div时如何显示/隐藏div

    我正在开发评论系统 对评论进行两级重播 我在如何显示和隐藏 div 方面遇到问题 因为它的 id 不同 我尝试了以下方法
  • 构建定义——只有空队列

    如果我正在创建构建定义 则无法选择默认代理队列 不久前 我可以创建包含默认队列的构建定义 我不知道改变是什么 它不再起作用了 如果我去编辑正确创建的构建定义 然后再次尝试创建定义 我可以选择默认队列 这是什么原因呢 在创建之前编辑现有的构建
  • 正则表达式验证 UTC 日期时间格式

    我想验证日期时间格式 例如 2014 08 29T06 44 03Z 为此我正在寻找一个reg ex 尝试了几种组合 但这些对我不起作用 试试这个正则表达式 b 0 9 4 0 9 2 0 9 2 T 0 9 2 0 9 2 0 9 2 Z
  • 在 word2vec Gensim 中获取二元组和三元组

    我目前在我的 word2vec 模型中使用 uni gram 如下所示 def review to sentences review tokenizer remove stopwords False Returns a list of se
  • IndexError:索引超出范围:7

    我正在使用名为财务数据质量管理企业版 FDMEE 的 Oracle EPM 产品 我编写了一个 Jython 脚本来解析数据文件并将其推送到 FDMEE 产品架构中的自定义表 当我推送数据文件的子集时 它工作正常 但是当我解析整个数据文件时
  • Git SVN 忽略路径如何工作(忽略每日构建标签)?

    我正在尝试使用 git svn 克隆 svn 存储库 该存储库具有我想忽略的每日构建标记 我正在尝试使用 ignore paths 选项来执行此操作 但我仍然将每日构建标签作为我的存储库中的分支 最近有一个类似的 但到目前为止尚未得到解答
  • 连接一元参数的模板参数包

    虽然说 std add pointer是一元的 以下代码被 GCC 7 0 0 20160608 和 Clang 3 9 0 接受 template
  • 在 Clojure 中测试对象是否为 Java 原始数组

    Clojure 中检测对象是否为 Java 原始数组的最佳方法是什么 我需要这个的原因是对原始数组进行一些特殊处理 这可能看起来像 if byte array object handle byte array object 它是一段对性能相
  • Python 每个模块和包一个类

    我正在尝试用 Python 构建我的应用程序 从 C Java 背景回来后 我喜欢每个文件一个类的方法 我希望我的项目树看起来像这样 Service Database DbClass1 py DbClass2 py Model DbMode
  • 用于保持您的网站被 Google Bing 等索引的 PHP 库

    我需要一些能够对我的网址进行索引和描述的库 所以我想对它说类似的话 用一些关键词索引这个新网址 www bla bla com new url 或类似的东西 我想确定的是 如果我告诉我的库我的新 URL Google 和其他人将 100 尽
  • 获取页面上所有 javascript 错误/javascript 错误处理

    我希望能够向自己发送页面上的所有 javascript 错误 我是一名扩展开发人员 因此以下内容重点强调在调用 dom 之前确保 dom 已准备好 我研究了添加一些功能throw还可以发送或邮寄例外情况 但我发现这是不可能的 1 主要解决这
  • 删除/避免向 URL 添加目标链接

    对于这里的 jQuery JavaScript 专家来说 这可能很简单 但我在网络上找不到解决方案 Case 我在页面底部有一个链接 上面写着Back to Top 该链接只是一个目标链接 如下所示 a href top class sta