スクロール位置の復元
:LiTarget: 何のために?
長い一覧の途中で詳細を見て戻った時、最上部に飛ぶと探し直しになる。
:LiSparkle: どう実装する?
sessionStorage に scroll Y を保存。戻った時に復元。
:LiCode: コード例
// 一覧ページ
useEffect(() => {
const saved = sessionStorage.getItem('scroll:' + location.pathname);
if (saved) window.scrollTo(0, parseInt(saved, 10));
return () => {
sessionStorage.setItem('scroll:' + location.pathname, String(window.scrollY));
};
}, []);