画像の高さが不定なので、画像の読み込みが遅れると最初の表示位置からスクロールがずれてしまうらしい。
色々試したけどURLがハッシュを含む場合にウィンドウの高さが変わったら(≒画像が遅れて読み込まれたら)アンカーを叩くという方法で対応している。
let lastClientHeight = 0; document.addEventListener("scroll", () => { if(lastClientHeight !== document.body.clientHeight) { if(location.hash != "") window.location.href = location.hash; lastClientHeight = document.body.clientHeight; } });
個人のプロジェクトの場合はUserScriptに書いているが、共同プロジェクトの場合はUserScriptを切っているのでChrome拡張に書いている。