【问题标题】:Remove hashtag (#) symbol from an anchor从锚点中删除主题标签 (#) 符号
【发布时间】:2018-02-22 05:30:22
【问题描述】:

我正在使用 jQuery 在我的内部锚链接上实现平滑滚动效果。我想知道是否有可能让网站 url 反映没有其前面的哈希符号的锚链接名称。

基本上在地址栏中显示 www.site/link1.com 而不是 www.site/#link1.com。

我已经尝试在谷歌上搜索这个问题,但没有提出任何关于这是否可以实现的一致事实。

【问题讨论】:

  • # 用于表示页面内的链接。您需要指出要滚动到页面中的哪个位置,特别是如果您要从外部源链接。这就是# 的用武之地。它还会自动处理浏览器历史记录,因此前进和后退按钮也可以平滑滚动。
  • 我了解它用于指示内部链接,但我想问是否可以保留它们的功能但将它们从地址栏中删除。因此,在您使用它平滑滚动后,可能会通过删除哈希来更新地址栏。

标签: javascript jquery css html smooth-scrolling


【解决方案1】:

我认为您在 jquery 代码中使用了一个 id,它将您从一个部分移动到另一个部分进入页面。因此,如果您可以使用特定的类名移动,而不是给出 id,那么可以避免使用主题标签。因为 ids 被视为#id_name,所以滚动后它会在 url 中显示总 id 名称。试试这个方法,我想它会给你结果。

【讨论】:

    【解决方案2】:

    我无法添加评论,但您的答案可能已经在这里得到解答,至少在我需要时它对我有所帮助: append /remove anchor name from current url without refresh

    【讨论】:

      【解决方案3】:

      过去只是做了类似的事情,下面代码中的 sn-p 用于滚动刚刚过去的 div id

      function topScroll(id) {
      
           $('html, body').animate({
                scrollTop: $('#' + id).offset().top - 150
           }, 1000);
      
      }   
      

      每次滚动点击我都会删除#Link

      function Redirect() {
      history.pushState("", document.title, window.location.pathname);//remove #section
      
       }
      

      每次点击都使用这两个功能

      【讨论】:

        猜你喜欢
        • 2021-04-04
        • 2014-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-05
        • 2015-09-07
        相关资源
        最近更新 更多