1. 程式人生 > >文章自動生成目錄及側邊欄目錄滾動特效的外掛toc-helper

文章自動生成目錄及側邊欄目錄滾動特效的外掛toc-helper

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

toc-helper

toc-helper

一、 簡介

TocHelper 是一款給文章自動生成目錄及側邊欄目錄滾動特效的外掛
特點

  • jQuery Free
  • 方便、靈活、高度定製化
  • 自動退級
  • Hash 定位
  • 目錄跟隨 Body / div 滾動

二、 使用

2.1 瀏覽器

2.1.1 引入css和js

<link href="css/toc-helper.min.css" rel="stylesheet" />
<script src="js/toc-helper.min.js"></script>

2.1.2 文章內容新增 data 屬性,值指向目錄元素: data-toc="#toc"

<div data-toc="#toc"> </div>

注意: #toc 選擇器對應的目錄元素必須存在

<div id="toc"> </div>

2.1.3 目錄已經存在, 呼叫 reload() 方法

new TocHelper().reload();

2.1.4 目錄若不存在, 呼叫 reset() 方法,自動建立目錄

new TocHelper().reset();

2.2 使用 Webpack
, Browserify, Gulp, Rollup 等構建工具

2.2.1 使用 npm 安裝 TocHelper
npm install toc-helper --save OR yarn add toc-helper
2.2.2 使用 require 引入

require('toc-helper/css/toc-helper.min.css')
const TocHelper = require('toc-helper')

2.2.3 使用 import 引入

import 'toc-helper/css/toc-helper.min.css'
import TocHelper from 'toc-helper'

2.2.4 簡單應用

new TocHelper().reload()

三、API

TocHelper([selector,options])

構造器方法, 只能通過 new 建立例項

selector
型別:string | HTMLElement | Object
預設值:

selector 若為字串,則必須是選擇器,切可以通過該選擇器獲取相應的元素,否則無效
selector 若為 Object ,則 options = selector 第二個引數無效

options
型別:Object
預設值: {}

合併初始的 options 引數,並重新 load; 比如 class 樣式發生改變; megre 之後需要呼叫 reload 方法

reload()

無參

例項化以及重新 megre 之後需要呼叫該方法

例項化後若目錄已經存在則呼叫該方法,若不存在則呼叫 reset 方法,生成目錄會自動呼叫該方法

reset()

無參

目錄不存在或需要重新生成目錄使用該方法

四、配置

options

1. dom

文章內容 Dom 元素, 選擇器或 HTMLElement 型別的 Dom 元素

型別:string | HTMLElement
預設值:*[data-toc]

2. classNames

class 選擇器名稱

2.1 toc

目錄元素的 class 選擇器名稱

型別:string
預設值:toc

2.2 fxied

目錄元素 position=fixedclass 選擇器名稱

型別:string
預設值:toc-fixed

2.3 brand

目錄 字的 class 選擇器名稱

型別:string
預設值:toc-brand

2.4 navbar

目錄選單 class 選擇器名稱

型別:string
預設值:toc-navbar

2.5 hightlight

啟用高亮/滑鼠懸停高亮的 class 選擇器名稱

型別:string
預設值:toc-hightlight

2.6 nav

選單父級節點class選擇器名稱

型別:string
預設值:toc-nav

2.7 link

選單項class選擇器名稱

型別:string
預設值:toc-link

2.8 active

選單項啟用後的class選擇器名稱

型別:string
預設值:active

2.9 marginLeft1

二級標題偏移的class選擇器名稱

型別:string
預設值:ml-1

2.10 marginLeft1

二級標題偏移的class選擇器名稱

型別:string
預設值:ml-1

2.11 marginLeft2

三級標題偏移的class選擇器名稱

型別:string
預設值:ml-2

2.12 marginLeft3

四級標題偏移的class選擇器名稱

型別:string
預設值:ml-3

2.13 marginLeft4

五級標題偏移的class選擇器名稱

型別:string
預設值:ml-4

2.14 marginLeft5

六級標題偏移的class選擇器名稱

型別:string
預設值:ml-5

2.15 marginLeft6

暫無使用

3. hightlight

是否高亮顯示

型別:Boolean
預設值:true

4. brand

目錄文字

型別:string
預設值:目錄

5. shadow

目錄陰影

型別:string | false
預設值:shadow

若為string ,則提供陰影的樣式class選擇器名稱,false表示禁用陰影

6. idPrefix

生成ID選擇器的字首

型別:string
預設值:toc-heading-

字尾由數字組成

7. offsetBody

內容父級定位元素,該元素必須存在position屬性,切position的值不等於static, 否則此值等於body

型別:string | HTMLElement
預設值:document.body

string型別時,必須是選擇器;無論是string型別,還是HTMLElement型別,都必須有position屬性,切position的值不等於static,否則此值等於body

8. topFixed

不使用或設定目錄fixed定位

型別:false | Object
預設值:如下

false表示不使用fixed定位;Object如下:

8.1 top

目錄距離文件頂部的偏移量

型別: Number
預設值:24

8.2 left

目錄距離文件左側的偏移量

型別: Number
預設值:

9 maxDepth

目錄最大層級

型別: Number
預設值:6

層級最大為6 ,最小為1,其他值無效

五、示例options全部配置資訊

{
   dom: '*[data-toc]', // 文章內容元素 選擇器 或 HTMLElement
   classNames: {       // class選擇器
       toc: 'toc',
       fxied: 'toc-fixed',
       brand: 'toc-brand',
       navbar: 'toc-navbar',
       hightlight: 'toc-hightlight',
       nav: 'toc-nav',
       link: 'toc-link',
       active: 'active',
       marginLeft1: 'ml-1',
       marginLeft2: 'ml-2',
       marginLeft3: 'ml-3',
       marginLeft4: 'ml-4',
       marginLeft5: 'ml-5',
       marginLeft6: 'ml-6'
   },
   hightlight: true,
   brand: '目錄',
   shadow: 'shadow',
   idPrefix: 'toc-heading-',
   offsetBody: document.body,
   topFixed: {
       top: 24,
       left: 0
   },
   maxDepth: 6
}

注意:

使用錨點 / Hash定位時,若存在頭部使用了fixedabsolute定位,會出現定位沒達到預期效果; 可將所有的標題padding-top等於頭部的高, margin-top等於頭部高的相反值,這樣可以解決定位不準切不會影響佈局;

示例程式碼如下:

*[data-toc] h1,
*[data-toc] h2,
*[data-toc] h3,
*[data-toc] h4,
*[data-toc] h5,
*[data-toc] h6 {
    margin-top: -83px;
    padding-top: 83px;
}

即將支援的功能

  • 目錄自動新增滾動條
  • 實現雙向滾動
  • 自動摺疊/展開
  • 支援橫向目錄
  • 同步高亮文章中的標題

gitee地址:toc-helper
github地址:toc-helper
npm地址:

相關推薦

文章自動生成目錄目錄滾動特效外掛toc-helper

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

markdown自動生成目錄/TOC

markdown自動生成側邊欄TOC /目錄 鑽研了2天時間,找到了一個簡單方法,用於生成華麗的markdown文件側邊欄目錄。這裡我免積分提供我的資源,希望可以讓廣大markdown使用者不再為如何生成一個漂亮的markdown目錄而頭疼。 宣告: 本模板

MarkdownPad2 匯出帶目錄的html,自動生成markdown文件

MarkdownPad2 匯出帶側邊欄目錄的html <!--bookmark --> <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> &

SublimeText配置Python開發環境(互動、快捷開啟 REPL、自動補全,等)

SublimeText配置Python開發環境(互動、快捷開啟 REPL、自動補全等) 0.效果圖: 主題是:Blackboard 1. 基礎配置、包安裝等基礎操作參考:sublime tex

微信小程式開發--『滑動』特效

側邊欄滑動是很常見的功能,但是小程式出來不久,很多特效還沒有成熟案例,只能原生重寫,所以今天為大家帶來4個漂亮的側邊欄特效~~ 側邊欄特效一 先看效果: Wxml: <view class="page"> <

使用autoc js生成文章目錄)導航

獨立 gpo blog sele 支持 ati log type fix 介紹:   autocjs 是一個專門用來生成文章目錄(Table of Contents)導航的工具。autocjs 會查找文章指定區域中的所有 h1~h6 的標簽,並自動分析文章的層次結構,生成文

ecshop文章導航,自動呼叫文章多級子欄目分類並且當前欄目父欄目高亮顯示

效果圖 介紹: 一,比如訪問ecshop的國內新聞(上圖沒顯示),及子分類,如山東新聞,臨沂新聞,上海新聞等,都會自動顯示上圖所示的側導航條. 二,另外,如果我訪問子導航,比如居民小區,則平涼新聞的兄弟欄目,父欄目,子欄目,都可以自由設定高亮顯示.而山東新聞及其子欄

編輯文章頁面,修改的分類多選框的樣式。

ane admin type cat pan style stty 分類 text function change_cat_meta_postbox_css(){ ?> <style type="text/css"> .wp-tab-panel

ACE刷新自動展開之前的選擇

刷新 其他 att ace blog 兩個 hat 原因 ren 在body下面加上 <script type="text/javascript"> $(document).ready(function(){ var u

Linxu基礎之Ubuntu如何使自動隱藏

如果你裝了ubuntu桌面版就會發現預設情況下桌面左邊會有一個側邊欄,從中我們可以啟動一些軟體,但是這個側邊欄一直顯示在桌面左邊不是很美觀,還會佔據桌面的的空間。 我們可以使其自動隱藏起來,當我們需要時只要把滑鼠放到桌面左邊它就會出現。 1. 系統設定-外觀 開啟系統

原創文章:使用Jquery+Bootstrap完成導航,以及內容頁的切換的功能

用jquery,Bootstrap完成導航欄,側邊欄,以及內容頁的切換的功能,大家必須有html,css,js的基礎,不然案例中的程式碼可能看起來比較吃力,站長先讓大家看效果: html部分程式碼如下: <!DOCTYPE html>

解析markdown文字,高亮程式碼,目錄

前言 個人比較喜歡使用markdown寫筆記,用過vs code,也用過作業部落,但是都沒有自己喜歡的側邊欄顯示目錄效果,所以就打算自己寫一個web來解析自己的markdown筆記,以下內容記錄一下自己使用到的和參考的工具和資料。 解析markdown文字

Django學習筆記三:頁面最新文章文章歸檔,分類,標籤雲的實現

前言 執行效果 (箭頭 == 點選) 根據效果圖可以知道我們要實現的功能:將內容填充到各個側邊欄對應的內容下面,並實現對應的跳轉功能。 下面我們一項一項的實現下列的功能: 首先在blog應用下建立一個templatetags資料夾,資料夾下

js實現自動隱藏

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4

Android:可滑動展開的在功能區中切換有EditText的佈局時自動展開的問題解決

問題描述: 軟體框架採用的類似QQ的方式,通過左右滑動可展開和隱藏側邊欄。 在其中一個佈局中,有一個按鈕可以切換下方的編輯佈局。 當點選某一個EditText,會彈出系統的輸入法。 點選返回鍵,輸入法會隱藏。 點選上方按鈕,切換佈局。

HelloDjango 第 10 篇:小細節 Markdown 文章自動生成目錄,提升閱讀體驗

目錄 在文中插入目錄 在頁面的任何地方插入目錄 處理空目錄 美化標題的錨點 URL 作者:HelloGitHub-追夢人物 文中涉及的示例程式碼,已同步更新到 HelloG

js 分享到

htm func line target 判斷 rip mouse get pad <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/

WordPress主題開發實例:利用工具顯示聯系方式

des dynamic class cat ons eba 廈門市 wordpress .com 利用側邊欄顯示聯系方式是很方便的 一、先開啟側邊欄工具,在functions.php加上 $args = array( ‘name‘ =

ecshop 前臺個人中心修改顯示不全 或 導航現實不全

page alt keyword list() com ade 模板 pla uid 怎麽給個人中心側邊欄加項或者減項 在模板文件default/user_menu.lbi 文件裏添加或者修改,一般看到頁面都會知道怎麽加,怎麽刪,這裏就不啰嗦了 添加一個欄目以

WordPress窗體化

什麽 拖拉 bar deb 整理 教程 不用 wid pre 窗體化側邊欄是一個支持 Widget 的側邊欄或者說是窗體化(widgetized)的側邊欄幾乎是 WordPress 主題的標準。 首先,什麽是窗體化(widgetizing)呢?簡單的說,窗體化就是能夠通過拖