el-menu的页面宽度缩小成一定程度变成三条杠收缩菜单

这个是我在做个人博客网页时,想实现的一个功能,因为在网上没有搜到,我就想着自己写一个。

template中的内容

<el-menu  mode="horizontal"
              class="el-menu-header"
              :ellipsis="false"
              :router="true">
      <MyInput
          ref="sRef"
          :initial-width="0"
          :expansion-width="300"
          @keyup.enter="search"
      />
      <el-menu-item index="/study" v-show="!isShrink">
        学习
      </el-menu-item>
      <el-menu-item index="/game" v-show="!isShrink">
        游戏
      </el-menu-item>
      <el-menu-item index="/life" v-show="!isShrink">
        生活
      </el-menu-item>
      <el-menu-item index="/tools" v-show="!isShrink">
        工具
      </el-menu-item>
      <el-menu-item index="/concatMe" v-show="!isShrink">
        联系我
      </el-menu-item>
      <el-sub-menu
          index="123"
          v-show="isShrink"
      >
        <template #title><img src="@/assets/menu.png" style="width: 20px"></template>
        <el-menu-item index="/study">
          学习
        </el-menu-item>
        <el-menu-item index="/game">
          游戏
        </el-menu-item>
        <el-menu-item index="/life">
          生活
        </el-menu-item>
        <el-menu-item index="/tools">
          工具
        </el-menu-item>
        <el-menu-item index="/concatMe">
          联系我
        </el-menu-item>
      </el-sub-menu>
 </el-menu>

实现方法

使用一个变量作为表示是否展示收缩的值,然后监听窗口变化。

我这里是小于700px时变化

const isShrink=ref(false)
const handleResize=()=>{
  let windowWidth=window.innerWidth
  if(windowWidth<700)isShrink.value=true
  else isShrink.value=false
}
window.addEventListener('resize',handleResize)
handleResize()

tip:想要menu的小三角去掉的话(subMenu放在el-sub-menu上)

/deep/ .subMenu .el-icon{
  display: none;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值