Jquery 如何在单击其他页面的链接后平滑滚动到id

Jquery 如何在单击其他页面的链接后平滑滚动到id,jquery,html,css,Jquery,Html,Css,假设我在页面中有一个链接 <a href="https://example.com/#sample"><p>Click Me</a> 单击“单击”按钮可进入href属性中的链接。但由于神的工作方式,它会立即捕捉到该页面中的id 我想做的是,页面不应该立即转到id,而是从页面顶部开始,然后平滑滚动到id 另一方面,当粘性菜单捕捉到id时,它会被菜单重叠(我希望它滚动的主要原因之一) jQuery不是我的强项 谢谢所有能帮忙的人 编辑 我认为我的措辞不恰当。

假设我在页面中有一个链接

<a href="https://example.com/#sample"><p>Click Me</a>

单击“单击”按钮可进入href属性中的链接。但由于神的工作方式,它会立即捕捉到该页面中的id

我想做的是,页面不应该立即转到id,而是从页面顶部开始,然后平滑滚动到id

另一方面,当粘性菜单捕捉到id时,它会被菜单重叠(我希望它滚动的主要原因之一)

jQuery不是我的强项

谢谢所有能帮忙的人

编辑 我认为我的措辞不恰当。 带有标记的链接位于与其目标不同的页面上。 例如:

主页上有链接

<a href="https://example.com/anotherPage/#sample"><p>Click Me</a>

有一个叫做另一个页面的页面,我想在上面滚动

很抱歉没有把这件事说得足够详细


感谢所有回复的人。

您可以使用jQuery的动画功能

请参见w3学校的示例:


您可以使用jQuery的动画功能

请参见w3学校的示例:


使用jQuery很容易,而且只需要几行

使用
$('a[href*=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


使现代化 如果要平滑滚动到新页面上的某个元素,请在该页面上包含以下代码:

它检查URL中是否有散列,如果有,则平滑滚动到具有相应
id
的元素


注意1:您可以通过更改
500
参数来改变速度。这是以毫秒为单位的动画时间


注2:您还可以在
500
之后添加另一个参数,这是一种缓和类型。默认情况下,它是
swing
(类似于CSS的
ease-in-out
),但您可以将其更改为
linear

,使用jQuery很简单,只需几行

使用
$('a[href*=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


使现代化 如果要平滑滚动到新页面上的某个元素,请在该页面上包含以下代码:

它检查URL中是否有散列,如果有,则平滑滚动到具有相应
id
的元素


注意1:您可以通过更改
500
参数来改变速度。这是以毫秒为单位的动画时间


注2:您还可以在
500
之后添加另一个参数,这是一种缓和类型。默认情况下,它是
swing
(类似于CSS的
ease-in-out
),但您可以将其更改为
linear

我总是将此项用于外部链接: 这将滚动到带有id的锚#


我总是将此链接用于外部链接: 这将滚动到带有id的锚#


css转换会有帮助css转换会有帮助你有没有机会看到我上面的编辑?谢谢。我已经更新了我的答案。希望这对你有帮助。你有机会看到我上面的编辑吗?谢谢。我已经更新了我的答案。希望这对你有帮助。你有机会看到我上面的编辑吗?谢谢。你能看到我上面的编辑吗?谢谢。你能看到我上面的编辑吗?谢谢。你好,我正在做锚链接到另一个网页与顺利滚动与此代码。但我有个问题。我在一个页面上有2个或更多锚定区域。当我来到另一个页面时并没有问题,但当我点击同一页面上另一个区域的锚定链接时,它并没有平滑滚动。为什么?@ZowiEvangeStany你能看到我上面的编辑吗?谢谢。你好,我正在做锚链接到另一个网页与顺利滚动与此代码。但我有个问题。我在一个页面上有2个或更多锚定区域。当我来到另一个页面时并没有问题,但当我点击同一页面上另一个区域的锚定链接时,它并没有平滑滚动。为什么?@佐维文吉斯特
$(document).ready(function(){
  // Add smooth scrolling to all links
  $("a").on('click', function(event) {

    // Make sure this.hash has a value before overriding default behavior
    if (this.hash !== "") {
      // Prevent default anchor click behavior
      event.preventDefault();

      // Store hash
      var hash = this.hash;

      // Using jQuery's animate() method to add smooth page scroll
      // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 800, function(){

        // Add hash (#) to URL when done scrolling (default click behavior)
        window.location.hash = hash;
      });
    } // End if
  });
});
$(document).ready(function() {
    $('a[href*=\\#]').on('click', function(e){
        e.preventDefault();
        $('html, body').animate({
            scrollTop : $(this.hash).offset().top
        }, 500);
    });
});
$(document).ready(function() {
    if (window.location.hash) {
        var hash = window.location.hash;
        $('html, body').animate({
            scrollTop :  $(hash).offset().top
        }, 500);
    };
});
$(document).on("ready", function () {
      var urlHash = window.location.href.split("#")[1];
      $('html,body').animate({
          scrollTop: $('.' + urlHash + ', #' + urlHash +',[name='+urlHash+']').first().offset().top -100
      }, 1000);
  });