ナビゲーションを上部固定、ページによって固定のパターンが違う、ページ内遷移多数、カルーセル処理、などが絡み合ったサイト構築あり。
ページ内遷移+スムーススクロールの挙動が変だったので色々回り道。
目次の自動生成プラグインもなんか変だな、と調べてみると小さい落とし穴。
Easy Table of Contents
ダウンロード数100,000+、かなりポピュラーだと思います。
このサイトでも今まで何となく使っていましたが、
見出しが日本語だと、スムーススクロールしないことに気づきました。(今までは問題なかったと思います。)
スクリプトエラーも出ているので、これはいかん。
見出しが英数だけだと問題無し。
Table of Contents Plus
代わりはないかと探すと見つかりました。こちらの方がダウンロード数多いです。300,000+。
コチラに変えたところ、日本語も問題無し。
「スムーズ・スクロール効果を有効化 – アンカーリンクにジャンプではなくスクロールする」
というオプションがありますが、これを有効にしても既存のスクロールスクリプトとバッティングすることも無いようです。
というわけでこちらに乗り換え。
スムーススクロールのスクリプト
結局、ページ内遷移やスムーススクロールに関しては以前の記事の「ページ内遷移にまつわる処理」のもので問題なく処理可能でした。
ただ、ページによって、またPCとタッチデバイスによって異なるヘッダー高さを処理するため、3つのスクリプトを条件分岐で切り替える必要はありました。(ヘッダー高さのパラメーターを変えただけ)
今まで、タブレット横位置の処理がいまいちだったのですが、これも解決していろいろ勉強になる案件でした。