2014-01-09 55 views
2

我已經開始使用CSS-Tricks的代碼,並且它與偏移量一起工作良好。問題是該網站有一個固定的標題,所以我需要它從另一個頁面導航到內部鏈接時應用偏移量。目前它正在被切斷。jQuery平滑滾動鏈接到其他頁面上的偏移量

$('a[href*=#]:not([href=#])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
     || location.hostname == this.hostname) { 

     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
      if (target.length) { 
      $('html,body').animate({ 
       scrollTop: target.offset().top-144 
      }, 1000); 
      return false; 
     } 
    } 
}); 

任何幫助將不勝感激。有問題的頁面是http://marketingmo.wpengine.com/services/#brand-development

回答

1

實際上沒有原生js函數可以阻止頁面加載時的哈希錨定。但有一個很好的解決方法,它可以在這個SO question找到。我之前使用過這種方法,它工作得很好。

setTimeout(function() { 
    var hash = location.hash 
    if (hash && $(hash).length) { 
     var target = $(hash).offset().top; 
     var headerH = $('header').height(); 
     $(window).scrollTop(target - headerH) 
     /* 
     //or with animate, 
     //but you'll need to reset the scrollTop to 0 (the top) first: 
     $(window).scrollTop(0); 
     $('html,body').animate({scrollTop:target - headerH}, 1000); 
     */ 
    } 
}, 1); 
+0

這就是我正在尋找的。除了原始代碼之外,我還使用了那一點代碼,它們在一起玩的很好。謝謝馬克! –