2017-10-25 4 views
0

スクロールスムーズなjqueryを使用してページ上部からURLハッシュから引っ張られたアンカーにスクロールする機能があります。スムーススクロールは、処理後にページの先頭にジャンプします。

スクロールは正常に機能しますが、完了すると、ページは一番上にリセットされます。ここで

は、これが実施されている方法です。これを引き起こしている可能性が何

if (hash) { // if hash in the URL 

    $('html, body') 
     .animate({scrollTop:$(window.location.hash) 
     .offset().top - 200 }, 1000); 
    } 

+0

画像などの後にこれを実行することを確認してくださいが読み込まれているので、 '$(ウィンドウ).LOADの中に置く(機能(){ここでは/ *あなたのコード* /});' –

+0

それを固定こと。ありがとう! – cnak2

答えて

0

画像やその他のコンテンツがまだロードされていないため、ページが最終的なサイズを受け取らない可能性が最も高い問題です。このようにして、最初のスクロールはロードされた後に間違った位置を指します。

このような場合には、コンテンツがロードされた後にスクロールを実行するのが良い方法です。そのため、$(window).loadメソッド内にコードをラップする必要があります。

var hash = window.location.hash; 
$(window).load(function(){ 
    if (hash) { // if hash in the URL 

    $('html, body') 
     .animate({scrollTop:$(window.location.hash) 
     .offset().top - 200 }, 1000); 
    } 
}); 
関連する問題