2016-06-24 9 views
0

私は自分のページのアンカーに滑らかなスクロールを統合しました。同じページのアンカーと一部のピクセルを除いたリンク

$(function() { 
     $('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 
      }, 1000); 
      return false; 
      } 
     } 
     }); 
    }); 

私はリンクをクリックすると、その位置にスクロールします。しかし、私は上部(高さ:100px)に固定されたメニューバーを持っているので、内容が少し重なっています。 これを何とか修正できますか?以下のようなコードで言う:そのアンカーマイナス100ピクセルまでスクロール... は、私はそれが

scrollTop: target.offset(-100).top 

で動作するかもしれないと思っていることは正しいですか?

+1

'scrollTop:target.offset()。top - 100'? – eisbehr

+0

ありがとう!私はこれを試みたが、100と100の間のスペースを忘れてしまった...愚かな私>。<ありがとう! –

+0

ようこそ。私はそれに答えを出しました。たぶんそれを解決策としてマークします。 ;) – eisbehr

答えて

1

jQueryのoffsetは、オフセットを与えるだけの機能です。これは、オフセット自体を変更することを意味するものではありません。後で100pxを減算するだけです。

scrollTop: target.offset().top - 100 
関連する問題