javascript - jQuery滚动到同一页面上的 anchor 功能,但直接转到不同页面

标签 javascript jquery anchor scrollto

我有几行基本上检测 anchor 链接并滚动到它们的 jQuery:

jQuery('a[href*=\\#]').on('click', function(event){
    event.preventDefault();
    jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top - 100}, 500);
});

问题是,当我有指向不同页面的出站 anchor 链接时,它们甚至不再工作,因为这段代码。所以基本上我想改变这个代码,所以它只触发相同的页面 anchor 链接(而不是出站 anchor 链接)。我假设它在 a[href*=\\#] 中的某处,但不太确定。

所以本质上,如果 href# 开头,这意味着它在同一页面上,否则不要使用此代码块。

有什么办法吗?

最佳答案

您可以使用 start-with为此目的选择器

jQuery('a[href^=\\#]').on('click', function(event){
  event.preventDefault();
  jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top - 100}, 500);
});

关于javascript - jQuery滚动到同一页面上的 anchor 功能,但直接转到不同页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45515730/

相关文章:

javascript - 使用 pagemod 添加一些 js 到 contentscript

javascript - 使用JS更改段落文本

jquery - 是否可以使用 jQuery 将文件从文件输入传递到 Controller ?

html - 如何在div的背景图片上获取 anchor 标记?

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

javascript - 如何将多个匿名 jquery 函数转换为单个命名函数?

Javascript 声明和调用函数的奇怪方式

javascript - 一定时间间隔后自动更新页面

javascript - 使用 printThis.js 重复页眉和页脚

html - IE 怪癖模式 a :hover style issue