最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Vue的側(cè)邊目錄組件的實(shí)現(xiàn)

 更新時(shí)間:2020年02月05日 08:30:19   作者:啊姚  
這篇文章主要介紹了基于Vue的側(cè)邊目錄組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

最近要做一個(gè)側(cè)邊目錄的功能,沒(méi)有找到類似的組件,索性自己寫了一個(gè)供大家參考

vue-side-catalog

一個(gè)基于vue的側(cè)邊目錄組件。

源碼地址:https://github.com/yaowei9363/vue-side-catalog

安裝

npm install vue-side-catalog -S

開始

<template>
 <div id="app">
  <div class="demo">
   <h1>JavaScript</h1>
   <h2>歷史</h2>
   <h3>肇始于網(wǎng)景</h3>
   <h3>微軟采納</h3>
   <h3>標(biāo)準(zhǔn)化</h3>
   <h2>概論</h2>
   <h2>特性</h2>
  </div>
 <side-catalog 
  v-bind="catalogProps"
 ></side-catalog>
 </div>
</template>
import SideCatalog from 'vue-side-catalog'
import 'vue-side-catalog/lib/vue-side-catalog.css'
export default {
 components: {
  SideCatalog,
 },
 data() {
  return {
   catalogProps:{
     containerElementSelector: '.demo',
   },
  };
 },
}
注意: containerElementSelector 屬性是必需的,指定文章的容器。

效果如下圖:

示例

自定義目錄標(biāo)簽

組件默認(rèn)會(huì)把containerElementSelector元素的直接子集的header標(biāo)簽作為目錄內(nèi)容,
對(duì)應(yīng)規(guī)則為:
h2 => 一級(jí)目錄
h3 => 二級(jí)目錄
h4 => 三級(jí)目錄
h5 => 四級(jí)目錄
要修改這一規(guī)則可以使用 headList 屬性,這個(gè)屬性的默認(rèn)值為["h2", "h3", "h4", "h5"]對(duì)應(yīng)上述規(guī)則

注意:自定義題目標(biāo)簽?zāi)壳爸恢С?code>containerElementSelector元素的直接子集的html標(biāo)簽
 data(){
  return {
   catalogProps:{
    headList: ["h1", "h2", "h3", "h4", "h5"], // 使h1作為一級(jí)目錄
    // headList: ["h3", "h1", "p", "span"], // 指定不同的標(biāo)簽為目錄
   },
  };
 },

自定義目錄元素

跟上面的自定義目錄標(biāo)簽不同,自定義目錄元素可以支持任意層級(jí)含有ref屬性的元素,也可以支持組件
需要用到 refList 屬性

<template>
  <h1>JavaScript</h1>
  <h2 ref="t1">歷史</h2>
  <h3 ref="t1-1">肇始于網(wǎng)景</h3>
  <h3 ref="t1-2">微軟采納</h3>
  <h3 ref="t1-3">標(biāo)準(zhǔn)化</h3>
  <h2 ref="t2">概論</h2>
  <h2 ref="t3">特性</h2>
  <version ref="t4"/>
  <!-- ... -->
</template>
//...
import Version from './components/Version';
export default {
 components: {
  // ...
  Version,
 },
 data() {
  return {
   catalogProps:{
     containerElementSelector: '.demo',
     refList:[
     {
      ref: 't1'
     },
     {
      ref: 't1-1',
      level: 2 // 指定為二級(jí)目錄
     },
     {
      ref: 't1-2',
      level: 2
     },
     {
      ref: 't1-3',
      level: 2
     },
     {
      ref: 't2'
     },
     {
      ref: 't3'
     },
     {
      ref: 't4',
      title: '版本' // 組件需要單獨(dú)設(shè)置title(默認(rèn)取innerText)
     },
    ]
   },
  };
 },
}

效果如下圖:

注意:headListrefList 同時(shí)設(shè)置的話,會(huì)忽視headList

指定元素滾動(dòng)

也可以使用 scrollElementSelector 對(duì)固定元素的內(nèi)容生成目錄,如果不指定該屬性則默認(rèn)監(jiān)聽Window的scroll事件

 data(){
  return {
   catalogProps:{
    scrollElementSelector: '.demo',
   },
  };
 },
.demo {
 height: 400px;
 overflow: auto;
}

效果如下圖:

在線示例

點(diǎn)擊這里

Props

Name Type Default Description
headList Array ["h2", "h3", "h4", "h5"] 為每級(jí)目錄指定標(biāo)簽
refList Array - 為每級(jí)目錄指定ref元素,數(shù)組每項(xiàng)為對(duì)象,包含兩個(gè)屬性<ul><li>ref(必需)該行目錄對(duì)象的refName</li><li>title該行目錄的名稱(默認(rèn)取innerText)</li><li>level(默認(rèn)為1)該行目錄級(jí)別</li></ul>
containerElementSelector String - (必需)指定文章的容器
scrollElementSelector String Window 需要添加scroll事件的css選擇器,默認(rèn)監(jiān)聽window的scroll事件
openDomWatch Boolean false 是否開啟dom監(jiān)聽,如果containerElementSelector中有dom變化會(huì)重新計(jì)算每級(jí)目錄的offsetTop

Methods

Name Parameters Description
initActive - 使目錄第一行處于active狀態(tài)
setRefList - 計(jì)算每級(jí)目錄的offsetTop

Slot

Name Description
- 目錄的題目

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Vue中使用Echarts的兩種方式

    詳解Vue中使用Echarts的兩種方式

    這篇文章主要介紹了Vue中使用Echarts的兩種方式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Vue+Vant 圖片上傳加顯示的案例

    Vue+Vant 圖片上傳加顯示的案例

    這篇文章主要介紹了Vue+Vant 圖片上傳加顯示的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Vue中如何使用ElementUI實(shí)現(xiàn)圖片上傳

    Vue中如何使用ElementUI實(shí)現(xiàn)圖片上傳

    這篇文章主要介紹了Vue中如何使用ElementUI實(shí)現(xiàn)圖片上傳,這里用了elementUI的一個(gè)簡(jiǎn)單的例子,給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • vue中?render?函數(shù)功能與原理分析

    vue中?render?函數(shù)功能與原理分析

    這篇文章主要介紹了vue中?render?函數(shù)功能與原理,結(jié)合實(shí)例形式分析了vue中render函數(shù)的基本功能、原理及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2023-06-06
  • Vue彈窗的兩種實(shí)現(xiàn)方式實(shí)例詳解

    Vue彈窗的兩種實(shí)現(xiàn)方式實(shí)例詳解

    這篇文章主要介紹了Vue彈窗的兩種實(shí)現(xiàn)方式,一種使用.sync修飾符另一種使用v-model,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 詳解Vue如何監(jiān)測(cè)數(shù)組的變化

    詳解Vue如何監(jiān)測(cè)數(shù)組的變化

    在 Vue 中,如果直接對(duì)數(shù)組進(jìn)行操作,比如使用下標(biāo)直接修改元素,數(shù)組長(zhǎng)度不變時(shí), Vue 是無(wú)法監(jiān)測(cè)到這種變化的,導(dǎo)致無(wú)法觸發(fā)視圖更新。針對(duì)該問(wèn)題本文為大家整理了一些方法,需要的可以參考一下
    2023-01-01
  • Vue實(shí)現(xiàn)文件上傳和下載功能

    Vue實(shí)現(xiàn)文件上傳和下載功能

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)文件上傳和下載功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 一篇看懂vuejs的狀態(tài)管理神器 vuex狀態(tài)管理模式

    一篇看懂vuejs的狀態(tài)管理神器 vuex狀態(tài)管理模式

    一篇看懂vuejs的狀態(tài)管理神器,Vuex一個(gè)專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 關(guān)于vue 的slot分發(fā)內(nèi)容 (多個(gè)分發(fā))

    關(guān)于vue 的slot分發(fā)內(nèi)容 (多個(gè)分發(fā))

    這篇文章主要介紹了關(guān)于vue 的slot分發(fā)內(nèi)容 (多個(gè)分發(fā)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vite的proxy查看真實(shí)請(qǐng)求地址方式詳解

    vite的proxy查看真實(shí)請(qǐng)求地址方式詳解

    這篇文章主要為大家介紹了vite的proxy查看真實(shí)請(qǐng)求地址方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評(píng)論

彩票| 德化县| 安泽县| 阜新市| 斗六市| 临武县| 龙井市| 壶关县| 东安县| 鸡泽县| 南充市| 穆棱市| 祁阳县| 榆中县| 射洪县| 长春市| 巨鹿县| 平陆县| 星子县| 宝兴县| 商南县| 灵石县| 绥棱县| 尉犁县| 闽清县| 上杭县| 东平县| 盈江县| 陇西县| 宜兴市| 额济纳旗| 井研县| 元朗区| 紫阳县| 舒兰市| 来安县| 建平县| 屏东县| 永德县| 遂宁市| 新安县|