隐藏 elementUI el-menu导航菜单出现的滚动条

在工作中左侧菜单栏如果高度超出屏幕范围,就会生成滚动条。但是生成的滚动条又不美观。怎么样才能在不影响滚动的情况下实现隐藏滚动条。

问了下GPT我也确实解决了主要是使用css中的代码

<template>
  <div class="menu-container">
    <el-menu
      class="el-menu"
      default-active="1"
      style="height: 200px; overflow-y: auto;"
      router>
      <el-menu-item index="1">Option 1</el-menu-item>
      <el-menu-item index="2">Option 2</el-menu-item>
      <el-menu-item index="3">Option 3</el-menu-item>
      <el-menu-item index="4">Option 4</el-menu-item>
      <el-menu-item index="5">Option 5</el-menu-item>
      <el-menu-item index="6">Option 6</el-menu-item>
    </el-menu>
  </div>
</template>

<script>
export default {
  data() {
    return {
      // 菜单数据等
    };
  },
};
</script>

<style>
/*对一些浏览器的支持*/
.el-menu {
  overflow: -moz-scrollbars-none;  /* Firefox */
  -ms-overflow-style: none;        /* Internet Explorer 10+ */
  scrollbar-width: none;           /* Firefox */
}
/*找到滚动条在谁身上 设置下面的属性*/
.el-menu::-webkit-scrollbar {
  display: none;  /* Chrome, Safari, Opera */
}
</style>

说明

  • scrollbar-width: none;:用于 Firefox 浏览器,隐藏滚动条但保留滚动功能。
  • -ms-overflow-style: none;:用于 Internet Explorer 浏览器,隐藏滚动条。
  • overflow-y: auto;:确保 el-menu 在内容溢出时仍然可以滚动。

注意事项

  • 浏览器兼容性:上面的代码应该在大多数现代浏览器中有效。如果你需要支持较旧的浏览器,可能需要额外的处理。
  • 用户体验:隐藏滚动条可能会影响用户体验,特别是如果用户不习惯使用鼠标滚轮或触摸板来滚动内容。因此,确保用户能够轻松地浏览内容是很重要的。

通过这种方式,你可以隐藏 el-menu 的滚动条,同时保留其滚动功能,提供更整洁的界面外观。

 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现关闭点击开启下拉框的功能,可以使用 `before-dropdown-toggle` 事件来实现。具体操作如下: 1. 在 `el-menu` 组件上添加 `@before-dropdown-toggle="handleToggle"` 监听事件。 2. 在 `methods` 中定义 `handleToggle` 方法来处理点击事件。 3. 在 `handleToggle` 方法中使用 `event.stopPropagation()` 方法来阻止事件冒泡,然后根据当前菜单项的状态来切换下拉框的显示状态。 示例代码如下: ```html <template> <el-menu :default-active="activeIndex" mode="horizontal" @before-dropdown-toggle="handleToggle"> <el-submenu index="1"> <template slot="title">导航一</template> <el-menu-item index="1-1">选项1</el-menu-item> <el-menu-item index="1-2">选项2</el-menu-item> <el-menu-item index="1-3">选项3</el-menu-item> </el-submenu> <el-submenu index="2"> <template slot="title">导航二</template> <el-menu-item index="2-1">选项1</el-menu-item> <el-menu-item index="2-2">选项2</el-menu-item> <el-menu-item index="2-3">选项3</el-menu-item> </el-submenu> </el-menu> </template> <script> export default { data() { return { activeIndex: '1-1', isOpen: false }; }, methods: { handleToggle(event, submenu) { event.stopPropagation(); submenu.isOpened ? submenu.handleCollapse() : submenu.handleExpand(); } } }; </script> ``` 在上述示例中,我们在 `methods` 中定义了 `handleToggle` 方法来处理点击事件。该方法接收 `event` 和 `submenu` 两个参数,其中 `event` 是当前点击事件对象,`submenu` 是当前菜单项的子菜单对象。 在 `handleToggle` 方法中,我们调用了 `event.stopPropagation()` 方法来阻止事件冒泡,然后使用 `submenu.isOpened` 属性来判断当前菜单项的状态。如果菜单项已经打开,则调用 `submenu.handleCollapse()` 方法来关闭下拉框;否则调用 `submenu.handleExpand()` 方法来打开下拉框。这样就可以实现关闭点击开启下拉框的功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值