2017-08-04 40 views
2

我有jQuery的幾行,基本上檢測錨鏈接,並滾動到他們: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開始#,這意味着它是在同一頁上,否則不要使用此代碼塊。

任何方式來做到這一點?

回答

1

您可以使用start-with選擇用於此目的

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

這可能是最快的方法,而無需添加類。如果由於某種原因這種方法確實會產生衝突,我建議添加一個專門的類,例如'.click-to-scroll'。這樣,除非將類添加到這些定位標記,否則它不會與其他頁面上的定位標記混淆。 –

相關問題