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

Vue3+Element-Plus實(shí)現(xiàn)左側(cè)菜單折疊與展開(kāi)功能示例

 更新時(shí)間:2022年04月26日 09:53:08   作者:小丫頭呀  
本文主要介紹了Vue3+Element-Plus實(shí)現(xiàn)左側(cè)菜單折疊與展開(kāi)功能示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1.最終實(shí)現(xiàn)的效果圖

2.  實(shí)現(xiàn)左側(cè)菜單折疊與展開(kāi)功能步驟

2.1 首先應(yīng)該在菜單頂部放一個(gè)折疊展開(kāi)的按鈕條

2.2 接下來(lái),畫(huà)按鈕條UI結(jié)構(gòu),實(shí)現(xiàn)折疊與展開(kāi)功能

1. 在側(cè)邊欄內(nèi)部,在側(cè)邊欄菜單區(qū)域之前,放置一個(gè)DIV。

 2. 在該DIV上面添加文本,通過(guò)點(diǎn)擊該DIV,觸發(fā)菜單折疊與展開(kāi)

3.通過(guò)類(lèi)選擇器,為該DIV 添加相關(guān)樣式

.toggle-button{
 // 添加背景顏色
 background-color: #4A5064;
 // 設(shè)置文本大小
 font-size:10px;
 // 設(shè)置文本行高
 line-height:24px;
 // 設(shè)置文本顏色
 color:#fff;
 // 設(shè)置文本居中
 text-align: center;
 // 設(shè)置文本間距
 letter-spacing: 0.2em;
 // 設(shè)置鼠標(biāo)懸浮變小手效果
 cursor:pointer;
}

4. 添加完樣式后的效果

2.3  實(shí)現(xiàn)點(diǎn)擊該DIV時(shí),觸發(fā)菜單折疊與展開(kāi)

1. 首先,需要為該DIV 按鈕條,綁定單擊事件

2. 為側(cè)邊欄菜單綁定 collapse 屬性

collapse 屬性   說(shuō)明:是否水平折疊收起菜單(僅在 mode 為 vertical 時(shí)可用)

該屬性默認(rèn)值是 False,把該值改變 True,就可以實(shí)現(xiàn)折疊與展開(kāi)效果了 

Menu 菜單 | Element Plus (gitee.io)

如上,為菜單欄綁定了屬性并賦值后,左側(cè)菜單欄折疊與展開(kāi)效果還并未生效。 

 3. 接下來(lái)先為側(cè)邊欄菜單 collapse 屬性  動(dòng)態(tài)賦值,并實(shí)現(xiàn)按鈕條的點(diǎn)擊單擊事件,讓折疊與展開(kāi)效果生效  

首先在數(shù)據(jù)區(qū)定義一個(gè)接受bool 變量對(duì)象

當(dāng)觸發(fā)DIV 點(diǎn)擊事件時(shí),對(duì)該bool 值對(duì)象進(jìn)行動(dòng)態(tài)賦值切換

 修改側(cè)邊欄,動(dòng)態(tài)接受bool 值

 通過(guò)collapse-transition 關(guān)閉側(cè)邊欄收縮動(dòng)畫(huà)效果。就是左側(cè)菜單欄收縮是,是否有動(dòng)畫(huà)效果。默認(rèn)值是true

 4.效果

2.4  折疊與展開(kāi)功能是實(shí)現(xiàn)了,但是背景顏色并沒(méi)有隨著菜單折疊時(shí)跟著變小或展開(kāi)時(shí)跟著變大

1. 是什么原因?qū)е碌?/p>

首先,整個(gè)紅色區(qū)域是屬于左側(cè)菜單欄的,那么查看代碼的UI結(jié)構(gòu)時(shí),就會(huì)發(fā)現(xiàn),這個(gè)菜單側(cè)邊欄是固定寫(xiě)死了一個(gè)200寬度的像素。 也就是說(shuō),是固定的這個(gè)寬度值,導(dǎo)致左側(cè)菜單欄背景無(wú)法跟著動(dòng)態(tài)折疊起來(lái)的原因。

2. 如何解決 只需要在判斷折疊與展開(kāi)時(shí),賦不同的寬度值即可解決

也就是說(shuō),如果 isCollapse 值為true(折疊) 的時(shí)候,賦值為46 px (把像素值變?。sCollapse 值為false (展開(kāi))的時(shí)候,賦值為200 px (把像素值還原)。

通過(guò)三元運(yùn)算符解決

2.5. 最終效果

 3. Home.vue 代碼

<template>
  <el-container class="home_container">
    <!-- 頭部區(qū)域 -->
    <el-header>
      <div>
        <img src="../assets/heima.png" alt="" />
        <span>電商后臺(tái)管理系統(tǒng)</span>
      </div>
      <el-button type="info" @click="logout">退出</el-button>
    </el-header>
    <!-- 頁(yè)面主體區(qū)域 -->
    <el-container>
      <!-- 側(cè)邊欄 -->
      <el-aside :width="isCollapse ? '64px':'200px'">
        <div class="toggle-button" @click="toggleCollapse">|||</div>
        <!-- 側(cè)邊欄菜單區(qū)域 -->
        <el-menu active-text-color="#409Eff"
        background-color="#545c64"
        text-color="#fff" unique-opened :collapse="isCollapse" :collapse-transition="false">
        <!-- 一級(jí)菜單 -->
        <el-submenu :index="item.id+''" v-for="item in menulist" :key="item.id">
          <!-- 一級(jí)菜單模板區(qū)域 -->
          <template #title>
            <el-icon :class="iconsObj[item.id]"></el-icon>
            <span>{{item.authName}}</span>
          </template>
          <!-- 二級(jí)菜單 -->
          <el-menu-item :index="subItem.id+''" v-for="subItem in item.children" :key="subItem.id">
          <template #title>
            <el-icon><iconMenu /></el-icon>
            <span>{{subItem.authName}}</span>
          </template>
          </el-menu-item>
        </el-submenu>
      </el-menu>
      </el-aside>
      <!-- 右側(cè)內(nèi)容主體區(qū)域 -->
      <el-main>Main</el-main>
    </el-container>
  </el-container>
</template>
<script>
export default {
  data () {
    return {
      // 左側(cè)菜單數(shù)據(jù)對(duì)象
      menulist: [],
      // 字體圖標(biāo)對(duì)象
      iconsObj: {
        125: 'iconfont icon-users',
        103: 'iconfont icon-tijikongjian',
        101: 'iconfont icon-shangpin',
        102: 'iconfont icon-danju',
        145: 'iconfont icon-baobiao'
      },
      // 是否折疊
      isCollapse: false
    }
  },
  created () {
    this.getMenuList()
  },
  methods: {
    logout () {
      window.sessionStorage.clear()
      this.$router.push('/login')
    },
    // 獲取所有的菜單數(shù)據(jù)
    async  getMenuList () {
      const { data: res } = await this.$http.get('menus')
      if (res.meta.status !== 200) return this.$message.error(res.meta.msg)
      // 成功了,進(jìn)行賦值
      this.menulist = res.data
      console.log(res)
    },
    // 點(diǎn)擊按鈕,切換菜單的折疊與展開(kāi)
    toggleCollapse () {
      this.isCollapse = !this.isCollapse
    }
  }
}
</script>
<style lang="less" scoped>
.home_container {
  height: 100%;
}
.el-header {
  background-color: #363d40;
  // 給頭部設(shè)置一下彈性布局
  display: flex;
  // 讓它貼標(biāo)左右對(duì)齊
  justify-content: space-between;
  // 清空?qǐng)D片左側(cè)padding
  padding-left: 0;
  // 按鈕居中
  align-items: center;
  // 文本顏色
  color: #fff;
  // 設(shè)置文本字體大小
  font-size: 20px;
  // 嵌套
  > div {
    // 彈性布局
    display: flex;
    // 縱向上居中對(duì)齊
    align-items: center;
    // 給文本和圖片添加間距,使用類(lèi)選擇器
    span {
      margin-left: 15px;
    }
  }
}
.el-aside {
  background-color: #313743;
  .el-menu {
    border-right: none;
  }
}
.el-main {
  background-color: #e9edf1;
}
.iconfont{
  margin-right: 10px;
}
.toggle-button{
 // 添加背景顏色
 background-color: #4A5064;
 // 設(shè)置文本大小
 font-size:10px;
 // 設(shè)置文本行高
 line-height:24px;
 // 設(shè)置文本顏色
 color:#fff;
 // 設(shè)置文本居中
 text-align: center;
 // 設(shè)置文本間距
 letter-spacing: 0.2em;
 // 設(shè)置鼠標(biāo)懸浮變小手效果
 cursor:pointer;
}
</style>

到此這篇關(guān)于Vue3+Element-Plus實(shí)現(xiàn)左側(cè)菜單折疊與展開(kāi)功能示例的文章就介紹到這了,更多相關(guān)Vue3+Element-Plus左側(cè)菜單折疊與展開(kāi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue.js常用指令的使用小結(jié)

    Vue.js常用指令的使用小結(jié)

    這篇文章主要介紹了Vue.js常用指令的使用,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-06-06
  • vue2 拖動(dòng)排序 vuedraggable組件的實(shí)現(xiàn)

    vue2 拖動(dòng)排序 vuedraggable組件的實(shí)現(xiàn)

    這篇文章主要介紹了vue2 拖動(dòng)排序 vuedraggable組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子

    Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子

    今天小編就為大家分享一篇Vue實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本內(nèi)容的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue判斷字符串(或數(shù)組)中是否包含某個(gè)元素的多種方法

    Vue判斷字符串(或數(shù)組)中是否包含某個(gè)元素的多種方法

    在我們前端日常開(kāi)發(fā)中經(jīng)常會(huì)遇到判斷一個(gè)字符串中是否包含某個(gè)元素的需求,下面這篇文章主要給大家介紹了關(guān)于Vue判斷字符串(或數(shù)組)中是否包含某個(gè)元素的多種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • vue接口請(qǐng)求加密實(shí)例

    vue接口請(qǐng)求加密實(shí)例

    這篇文章主要介紹了vue接口請(qǐng)求加密實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Vue中引用JSON數(shù)據(jù)的方法小結(jié)

    Vue中引用JSON數(shù)據(jù)的方法小結(jié)

    在現(xiàn)代Web開(kāi)發(fā)中,JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成,Vue.js作為一個(gè)流行的前端框架,支持多種方式引入和處理JSON數(shù)據(jù),本文將詳細(xì)介紹幾種在Vue中引用JSON數(shù)據(jù)的方法,需要的朋友可以參考下
    2024-10-10
  • vue elementUI 表單校驗(yàn)功能之?dāng)?shù)組多層嵌套

    vue elementUI 表單校驗(yàn)功能之?dāng)?shù)組多層嵌套

    這篇文章主要介紹了vue elementUI 表單校驗(yàn)(數(shù)組多層嵌套)功能的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-06-06
  • vue3+vite實(shí)現(xiàn)低版本瀏覽器兼容的解決方案(出現(xiàn)白屏問(wèn)題)

    vue3+vite實(shí)現(xiàn)低版本瀏覽器兼容的解決方案(出現(xiàn)白屏問(wèn)題)

    項(xiàng)目全線使用vue3的時(shí)候,自然使用的是配套更加契合的vite打包工具,于是自然而然會(huì)用到很多新的語(yǔ)法,本文給大家介紹了vue3+vite實(shí)現(xiàn)低版本瀏覽器兼容的解決方案(出現(xiàn)白屏問(wèn)題),需要的朋友可以參考下
    2024-04-04
  • Vue實(shí)現(xiàn)圖片輪播組件思路及實(shí)例解析

    Vue實(shí)現(xiàn)圖片輪播組件思路及實(shí)例解析

    這篇文章主要介紹了Vue實(shí)現(xiàn)圖片輪播組件思路及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • vue3+pinia用戶信息持久緩存token的問(wèn)題解決

    vue3+pinia用戶信息持久緩存token的問(wèn)題解決

    本文主要介紹了vue3+pinia用戶信息持久緩存token的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評(píng)論

淮北市| 竹溪县| 沛县| 东乌珠穆沁旗| 阿克苏市| 连山| 瑞安市| 滕州市| 萍乡市| 乐安县| 侯马市| 平陆县| 阜康市| 赤壁市| 兴安盟| 英超| 富川| 方山县| 汨罗市| 赤峰市| 泰州市| 纳雍县| 民和| 吕梁市| 峨边| 通渭县| 镇安县| 徐州市| 南昌县| 凌海市| 德安县| 武邑县| 娱乐| 珠海市| 左贡县| 称多县| 新竹县| 长海县| 安顺市| 昌乐县| 通渭县|