SmartAnchor 紹介 & 動作デモ

右の UI で ON/OFF や offset を変えて挙動を比較できます。

SmartAnchorとは

固定ヘッダ(position: fixed / sticky)が原因で発生するアンカーリンクのズレを、 既存サイトに後付けで一括解決する軽量スクリプトです。

なぜ問題が起きるのか(fixed header 問題)

ブラウザ標準の #anchor ジャンプは「対象要素の上端を viewport 上端に合わせる」動作です。 固定ヘッダがあると viewport 上端が覆われるため、見出しが隠れます。

ON/OFF UI(使い方)

  1. 右の Mode を OFF にする
  2. 目次リンクをクリックして「隠れる」問題を確認
  3. Mode を ON に戻して補正を確認
  4. offset をサイトのヘッダ高さに合わせる

導入方法(初心者向け)

<script>
  window.SMARTANCHOR_CONFIG = { offset: 72, autoInit: true };
</script>
<script src="/assets/js/smartanchor.js" defer></script>

設定一覧(制作会社向け)

optiontype説明
offsetnumber固定ヘッダの高さ
animatebooleanスクロールアニメ
durationnumberアニメ時間(ms)
easingstringlinear / easeOut / easeInOut
updateHashbooleanURLハッシュ更新
historyModestringpush / replace
focusbooleana11y focus

CSP・広告・設定による注意点

CSP

外部JSを禁止している場合、smartanchor.js 自体が読み込めません。推奨は自サイト配信('self')です。

広告ブロッカー

CDN配信のJSがブロックされることがあります。自サイト配信が安全です。

WordPress最適化/キャッシュ

結合や遅延で実行順が変わると設定が効かないことがあります。smartanchor.js を除外するのが安全です。

動かない時のチェック

  • 1 smartanchor.js のパスが正しいか
  • 2 SMARTANCHOR_CONFIG が先に定義されているか
  • 3 offset が実ヘッダ高さと合っているか
  • 4 最適化/キャッシュで順序が変わっていないか

制作:門王(依頼受付)

SmartAnchor は 門王(monou.jp) が制作しています。 既存サイト向けの軽量スクリプト開発や、WordPress/静的サイトの改善などのご依頼を受け付けています。