jQuery 同一页面滚动锚定功能,不同页面直接跳转
jQuery scroll to anchor function on same page, but go directly on different pages
我有几行 jQuery 基本上检测锚链接,并滚动到它们:
jQuery('a[href*=\#]').on('click', function(event){
event.preventDefault();
jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top - 100}, 500);
});
问题是,当我有指向不同页面的出站锚链接时,它们甚至不再工作,因为这段代码。所以基本上我想改变这个代码,所以它只触发相同的页面锚链接(而不是出站锚链接)。我假设它在 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);
});
我有几行 jQuery 基本上检测锚链接,并滚动到它们:
jQuery('a[href*=\#]').on('click', function(event){
event.preventDefault();
jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top - 100}, 500);
});
问题是,当我有指向不同页面的出站锚链接时,它们甚至不再工作,因为这段代码。所以基本上我想改变这个代码,所以它只触发相同的页面锚链接(而不是出站锚链接)。我假设它在 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);
});