2017-03-07 9 views
0

1つのdivから別のdivに遷移するたびに、私のオートスクロール機能を約50-100pxオフセットする必要があります。オートスクロールをどのようにオフセットできますか?

以下のスクリプトは私が使用しているものです。リンクをクリックすると、スムーズにスクロールして関連するDivの一番上に移動します。

しかし、私は自分のサイトの上部にスティッキーヘッダーを持っているので、これは常にあなたが移行するdivをカバーします。

とにかく私はdivの先頭に移動するように設定できますが、-100pxでオフセットしますか?

私のコードは以下の通りです。あなたのコメントから

$(document).ready(function(){ 
    $('a[href^="#"]').on('click',function (e) { 
     e.preventDefault(); 

    var target = this.hash; 
    var $target = $(target); 

    $('html, body').stop().animate({ 
     'scrollTop': $target.offset().top 
    }, 900, 'swing', function() { 
     window.location.hash = target; 
    }); 
}); 
}); 
+0

あなたはおそらく設定を参照している 'Zインデックス:-100px'? – Morgs

+0

私が意味するのは、リンクをクリックしてページが選択したdivの一番上にスクロールしたとき、divの上にスクロールしてはなりません。 理由は、私は100pxの高さを持つ粘着性のあるヘッダーがあるということです。このスティッキーヘッダーは常に表示されている必要がありますので、Z-インデックスを変更することは私の後ではありません。 私は、あなたがそれをスクロールするときにヘッダーがそれをカバーしないように、私はむしろ各divの上に100px停止した自動スクロールしたいと思います。 – Pierce

+0

答えを確認... – Morgs

答えて

0

[OK]をので、ここであなたが試すことができるものです。

$('html, body').stop().animate({ 
     'scrollTop': ($target.offset().top - 100) // 100 is hard coded though you can make it dynamic if you know identifier of your sticky div like so: ($target.offset().top - $("#sticky-div").outerHeight()) 
    }, 900, 'swing', function() { 
     window.location.hash = target; 
}); 
+0

完璧なおかげさま!私はそれがそれほど単純ではなかったことを理解していません – Pierce

+0

すごくいいですね... – Morgs

関連する問題