成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

為你的文章生成目錄索引

魏憲會 / 801人閱讀

摘要:使用可以快速為你的頁面生成目錄的結(jié)構(gòu),擁有較強的可定制性,并且并不會擅自為你做太多的事情,以便你更容易地把應(yīng)用到你的項目中。

引言

為頁面中的標(biāo)題元素建立目錄索引,這是一個不起眼卻很實用的功能,特別是對于那些含有篇幅很長的文章的頁面,擁有一個目錄可以讓讀者對文章的結(jié)構(gòu)一目了然,更重要的是,讀者可以很輕松地在文章的各個章節(jié)之間來回快速跳轉(zhuǎn),極大地提高了用戶體驗。

toc.js

使用 toc.js 可以快速為你的頁面生成目錄的 HTML 結(jié)構(gòu),toc.js 擁有較強的可定制性,并且 toc.js 并不會擅自為你做太多的事情,以便你更容易地把 toc.js 應(yīng)用到你的項目中。

項目主頁:GitHub

預(yù)覽

用法

在你的頁面中引入 toc.js:

請根據(jù)項目實際情況自行修改 src 屬性。

toc.js 基于 jQuery,請確保在使用 Toc 之前引入 jQuery。

快速上手

實例化 Toc:

var toc = new Toc();

然后調(diào)用 make() 方法:

make(content, toc[, callback])

該方法接受兩個必選參數(shù):第一個參數(shù) content 是頁面中要為其中的標(biāo)題元素建立目錄索引的 jQuery 元素對象,通常就是 article 標(biāo)簽,第二個參數(shù) toc 是用于存放目錄索引的 jQuery 元素對象。

比如你的頁面中有下面元素:

something...

你要在下面的元素中為上面元素內(nèi)的標(biāo)題元素建立目錄索引:

你應(yīng)該這樣調(diào)用 make() 方法:

var content = $("article");
var wrapper = $(".toc");

toc.make(content, wrapper);

make() 方法將為 content 內(nèi)的標(biāo)題標(biāo)簽添加錨點,并在 toc 內(nèi)生成對應(yīng)的目錄索引,生成的目錄結(jié)構(gòu)大致如下:

如果你需要在目錄索引生成后進行一些操作,可以給 make() 方法傳入第三個參數(shù):

var content = $("article");
var wrapper = $(".toc");

var callback = function () {
    console.log("well done!");
};

toc.make(content, wrapper, callback);
更多

如果默認(rèn)生成的目錄索引不能滿足你的需求,你可以在調(diào)用 make() 方法之前鏈?zhǔn)秸{(diào)用 setting() 方法來設(shè)定一些參數(shù),甚至定義如何生成目錄的 HTML 結(jié)構(gòu),setting() 方法接受一個對象作為唯一的必選參數(shù):

setting(config)

你可以在給傳給 setting() 方法的對象定義以下屬性或方法:

配置項 說明 默認(rèn)值
headingSelector 決定哪些級別的標(biāo)題會出現(xiàn)在目錄中 h2, h3, h4
anchorPrefix 每個標(biāo)題錨點名的前綴 toc-
makeItem() 如何生成目錄的每個條目 默認(rèn)生成被 li 標(biāo)簽包含的 a 標(biāo)簽
makeWrapper() 如何生成每個目錄層級的容器 默認(rèn)使用 ul 標(biāo)簽
headingSelector

headingSelector 屬性是一個 jQuery 選擇器,你可以通過定義它來決定哪些標(biāo)題元素將會出現(xiàn)在目錄中:

var config = {
    headingSelector: "h1, h2, h3",
};

toc.setting(config).make(content, wrapper, callback);

以上定義了只有一級標(biāo)題、二級標(biāo)題和三級標(biāo)題會出現(xiàn)在目錄中。

anchorPrefix

你可以定義 anchorPrefix 屬性來決定每個標(biāo)題錨點名的前綴,默認(rèn)為 toc-。

makeItem()

你可以定義 makeItem() 方法來告訴 Toc 如何生成目錄的每個條目:

makeItem(anchor, text, level)

該方法接受三個參數(shù):第一個參數(shù) anchor 是對應(yīng)標(biāo)題的錨點;第二個參數(shù) text 是對應(yīng)標(biāo)題的文本內(nèi)容;第三個參數(shù) level 是該標(biāo)題的級別,你需要在此方法中返回目錄條目的 HTML字符串、DOM 元素或者 jQuery 對象,默認(rèn)的定義如下:

function (anchor, text, level) {

    return "
  • " + text + "
  • "; }
    makeWrapper()

    你還可以定義 makeItem() 方法來告訴 Toc 如何生成每個目錄層級的容器:

    makeWrapper(level)

    默認(rèn)的定義如下:

    function (level) {
    
        return "
      "; }

      如果你想多帶帶設(shè)定最頂級目錄層級的容器的生成方式,你可以這樣定義 makeWrap() 方法:

      function (level) {
          // 其他容器的生成方式
          this.makeWrapper = function (level) {
              return "
        "; }; return "
          "; }
          最后

          如果你覺得這個微不足道的項目能對你有所幫助,那就給我一個 star 吧!——項目主頁:GitHub

          文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

          轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93229.html

          相關(guān)文章

          • 你的博客添加目錄索引

            摘要:我采用了遍歷樹,然后找到文章的標(biāo)簽暫時只對標(biāo)簽建立索引,為其添加的方式建立索引。初始化文章錨點和目錄數(shù)據(jù)結(jié)構(gòu)找到屬于文章內(nèi)容的標(biāo)簽添加標(biāo)簽文本內(nèi)容記錄當(dāng)前標(biāo)簽的偏移量,方便后面計算滾動距離。 一、前言 演示圖例 showImg(https://segmentfault.com/img/remote/1460000016099128?w=1547&h=894); 需求 這個目錄索引應(yīng)該包...

            SwordFly 評論0 收藏0
          • 你的站點插上ElasticSearch的翅膀

            摘要:下載并安裝目前的最新穩(wěn)定版為,如果之后版本有升級,請將相應(yīng)的版本號替換掉上面的。在實現(xiàn)的過程中,貌似對中文的支持不是那么好,所以接下來會嘗試使用一下中文分詞器來看看效果,順利的話會再出一篇文章。 原文來自:https://jellybool.com/post/setup-slasticsearch-on-your-website 在我的博客按Shift+S就可以呼出搜索框,可...

            JouyPub 評論0 收藏0
          • 你的博客添加搜索功能吧!

            摘要:提供個人博客文章搜索服務(wù)只需要配置個人博客地址載入博客數(shù)據(jù)開啟服務(wù)即可開啟文章搜索服務(wù)。對配置文件監(jiān)控修改后服務(wù)及時地更新博客數(shù)據(jù)。 Search-Spider-Blog 提供個人博客文章搜索服務(wù), 只需要配置個人博客地址, 載入博客數(shù)據(jù), 開啟Server服務(wù), 即可開啟文章搜索服務(wù)。 對blogconfig.json配置文件監(jiān)控, 修改后服務(wù)及時地更新博客數(shù)據(jù)。 本人用的為Hexo...

            vboy1010 評論0 收藏0
          • 如何發(fā)布你自己的React模塊至NPM

            摘要:文章介紹如何創(chuàng)建發(fā)布一個包,包括項目搭建發(fā)布流程注意事項等。語義化版本號分為三位。主版本號當(dāng)進行了大都改動或者對有很多不兼容修改時應(yīng)該進行版本號升級。次版本號增加了部分特性或者優(yōu)化時升級該版本。如如果你想撤回指定版本,執(zhí)行包名版本號。 文章介紹如何創(chuàng)建發(fā)布一個npm包,包括項目搭建、發(fā)布流程、注意事項等。 演示代碼GitHub地址 1. 初始化項目 首先在創(chuàng)建好的項目文件夾下面執(zhí)行 ...

            zombieda 評論0 收藏0

          發(fā)表評論

          0條評論

          最新活動
          閱讀需要支付1元查看
          <