2016-08-18 5 views
1

の上に固定されたバナーを持つ要素に、私はこのようにscrollTopスプライトを作る方法を考え出した:.scrollTopが画面

$("#nav-home").click(function() { 
    $('html, body').animate({scrollTop: $("#content-home").offset().top}, 800); 
}); 

しかし、私の問題は、私はそうするときに、画面の上部に固定されたバナーを持っているということですバナーによって非表示にされた#content-home要素のページ部分をスクロールします。また、私はこれを使用しています

var hheight = $(".mainh").height(); 
var theight = hheight + 14; 
$("#first-content").css("margin-top", mheight + "px") 

が自動的にバナー+ 2 * 7pxボーダー(+ 14)の高さに応じて、上マージンを追加します。私はそれが愚かだと知っていますが、私はそれをこのようにして喜んでいます。

私はオフセットにさらに追加する方法のようなものを求めています。あるいは、上記の「余裕計算機」の影響を受ける最初の要素のオフセットを追加してください。

これで私を助けたり、ヒントを追加したりしても大丈夫です。

答えて

1

scrollTop数にバナーの高さを差し引くないのはなぜ?

+0

ありがとう、あなたの答えは私を助けました。しかし、+ hheightを何らかの理由で "+ hheight"に置き換えなければなりませんでした。なぜなら、それが完全にスクロールしていたのですが、content-homeの次の要素に移動しました。なぜこれがそれをしたのか分かりませんが、今はうまくいきますので気にしません。 – MasterTX

+0

@MasterTXもちろん、ヘッダーの高さを差し引くのではなく、追加する必要があります。私の答えはこれを修正するために編集されました〜 –

0

使用この

$( 'mainh')。outerHeight(真)