はてなブログ向けのサイドバーで追尾する目次【ver3】
- デザイン設定の[カスタマイズ]を開く
sidebar_toc.html
を[サイドバー]-[モジュールを追加]-[HTML]に貼り付けるsidebar_toc_footer_minify.html
を[フッタ]に追加するsidebar_toc.css
を[デザインCSS]に追加する
ファイル | 説明 |
---|---|
sidebar_toc.html |
サイドバーに貼り付けるHTML |
sidebar_toc_footer_minify.html |
フッターに貼り付けるスクリプト |
sidebar_toc.css |
CSS |
custom.css |
公式テーマの表示崩れ修正例 |
sidebar_toc_footer.html |
圧縮前のスクリプト |
CHANGELOG.md |
変更履歴 |
変数名 | 説明 | 設定値 | デフォルト |
---|---|---|---|
PAGES |
各ページごとの動作設定 | PAGES options | |
MATCH_MEDIA |
サイドバーが横に表示されているかの判定をmatchMedia関数で行う | true, false | false |
MEDIA_QUERY_SIDEBAR |
サイドバーが表示された状態を指定(MATCH_MEDIA がtrueの時) |
mediaQueryString | '(min-width: 768px)' |
MARGIN_TOP |
目次を固定する時の上の余白 | pixel | 10 |
MARGIN_BOTTOM |
目次を固定する時の下の余白 | pixel | 0 |
CURRENT_MARGIN |
現在位置表示の位置取得に余裕をもたせる | pixel(0以上) | 50 |
ADJUST_FIXED |
固定開始位置がずれるときの調整用(最終手段) | pixel | 0 |
MAX_HEIGHT |
目次モジュールの最大サイズを指定(0にするとオフ) | pixel | 0 |
HEADLINE_QUERY |
表示する見出しタグ(数字が小さい順・小文字) | h1-h6 | ['h3', 'h4', 'h5'] |
HEADLINE_MIN |
見出しがn個以下なら表示しない | 0以上 | 1 |
ADJUST_SCROLL |
スクロール先の調整 | pixel | 0 |
SCROLL_TIME |
スムーズスクロールにかける時間(0にするとオフ) | ミリ秒 | 400 |
SCROLL_TIME_TOUCH |
タッチデバイスでスムーズスクロールにかける時間(0にするとオフ) | ミリ秒 | 0 |
TOC_INSIDE_SCROLL |
目次内のスクロールを自動追尾 | true, false | true |
TOC_TITLE_TOP |
目次タイトルにトップへ移動するリンクを設定 | true, false | true |
SCROLL_SHADOW |
目次内スクロールが可能か分かりやすくするための表示 | true, false | false |
LINK_HISTORY |
ページ内リンクをブラウザ履歴に追加(目次が表示されるページのみ適用) | true, false | true |
DELAY_GET_DOM |
見出しなどを取得するタイミングをHTMLが読み込まれたあとにする | true, false | false |
DELAY_TIME_DOM |
HTMLが読み込まれたあと処理の開始を遅らせる時間 | ミリ秒 | 250 |
DELAY_TIME_LOAD |
ページが完全に読み込まれたあと処理の開始を遅らせる時間 | ミリ秒 | 1000 |
GLOBAL_HEADER |
常に表示されるグローバルヘッダーなどの要素を指定 | #id .class | ['#globalheader-container'] |
CLICK_UPDATE |
クリック後に見出し位置などの再取得を行う要素を指定 | #id .class | [] |
CLICK_UPDATE_DELAY |
CLICK_UPDATE の実行を遅らせる時間 |
ミリ秒 | 500 |
USE_LIST |
使用するリスト要素 | ol, ul | 'ol' |
TOUCH_DEVICE |
タッチデバイスの判定方法 | 'ontouchstart' in window |
|
TOUCH_DEVICE_DISABLE |
タッチデバイスで非表示にする | true, false | false |
F_STICKY_MODE |
ブラウザが対応していれば常にposition:sticky を使う(IE11未対応) |
true, false | false |
PAUSE_NO_SIDEBAR |
サイドバーが横に表示されていない時処理を止める | true, false | true |
PAUSE_MAIN_SMALL |
サイドバーより記事の方が小さい時処理を止める | true, false | true |
ページごとの動作設定
-
class
— 各ページでbodyに設定されているクラス名クラス名 ページ名 page-entry
記事ページ page-index
トップページ(Pro機能の一覧形式を使うと page-archive
も付く)page-archive
アーカイブページ(最新記事やカテゴリ、検索等) page-static_page
固定ページ(Pro機能) -
title
— 目次タイトル(''
: 空文字にすると非表示)- 記事一覧ページ以外は
title
の設定を'entry-title'
にすると記事のタイトルが表示されます
- 記事一覧ページ以外は
-
listPage
— 記事一覧ページに付ける(true) -
display
— 目次を表示するかどうか(true, false)
※注意:Pro機能のトップページの一覧形式を有効にする場合、page-archive
よりpage-index
を先に書かないと期待した動作にならない。
// デフォルト
const PAGES = [
{
class : 'page-entry',
title : '目次',
display : true,
},
{
class : 'page-index',
title : 'このページの記事一覧',
listPage : true,
display : true,
},
{
class : 'page-archive',
title : 'このページの記事一覧',
listPage : true,
display : true,
},
{
class : 'page-static_page',
title : 'entry-title',
display : false,
},
];
このページにあるファイルはCC0ライセンスです。必要な部分だけをコピーして使ってもかまいません。