Scrapboxで画像が多いページへの行リンクがずれないようにする

画像の高さが不定なので、画像の読み込みが遅れると最初の表示位置からスクロールがずれてしまうらしい。

色々試したけど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拡張に書いている。

参考