前提・実現したいこと
jQuery、JSの初学者です。
URL例:https://hogehoge.com/index.html#hogehoge
- 上記のようなハッシュを持ったURLにアクセスした際、id="hogehoge"までスクロールする機能を実装したいです。
- ヘッダーをfixedで固定さているため、#hogehogeにヘッダーが被らないようにしたい。
いろいろ試した結果、以下のソースコードになりました。
発生している問題・エラーメッセージ
Win10 Firefoxでは動きますが、Android Google Pixel 3aのFirefoxで検証した結果、PCとは違う挙動になってしまいました。
Win10 Firefoxの検証にてコンソールを見たところ(iPhone 6/7/8サイズ)、変数targetの値が上手く取得できていないようでした。
該当のソースコード
jQuery
1$(window).on('load',function(){ 2 let id = $( location ).attr('hash'); 3 let height = $(".date-list").height(); 4 if(id){ 5 let target = $(id).offset().top - height - 120; 6 $('html,body').animate({scrollTop: target}, 'swing'); 7 console.log(target); 8 } 9});
参考にしたサイト
【jQuery】ページ遷移後に特定の要素の位置までスクロールする
https://into-the-program.com/scroll-after-loading/
補足情報(FW/ツールのバージョンなど)
OS
- Win10
- Android Google pixel 3a
ブラウザ
- Firefox
エディタ
- Visual Studio Code
回答1件
あなたの回答
tips
プレビュー