当前位置:   article > 正文

elementUI侧边栏实现响应式,响应式侧边栏_el-menu collapse 响应式

el-menu collapse 响应式

实现思路:准备两份aside侧边栏,借助display和媒体查询实现响应式。

以下是完整代码:

  1. <template>
  2. <el-container>
  3. <el-header>头部</el-header>
  4. <el-container>
  5. <!-- 准备两份aside侧边栏 -->
  6. <!-- 利用isCollapse动态控制侧边栏的宽度 -->
  7. <el-aside :width="isCollapse ? '64px' : '200px'" class="show">
  8. <!-- 切换侧边栏的显示与隐藏效果 -->
  9. <div class="toggle" @click="toggleCollapse">|||</div>
  10. <!-- collapse: 是否水平折叠收起菜单 -->
  11. <!-- collapse-transition:开启折叠动画 -->
  12. <el-menu :collapse="isCollapse" :collapse-transition="false" default-active="2" class="el-menu-vertical-demo" @open="handleOpen"
  13. @close="handleClose" background-color="#333744" text-color="#fff" active-text-color="#ffd04b">
  14. <el-submenu index="1">
  15. <template slot="title">
  16. <i class="el-icon-location"></i>
  17. <span>导航一</span>
  18. </template>
  19. <el-menu-item index="1-4">选项1</el-menu-item>
  20. </el-submenu>
  21. </el-menu>
  22. </el-aside>
  23. <!-- 第二份aside侧边栏 -->
  24. <!-- 侧边栏宽度取值与第一份相反 -->
  25. <el-aside :width="isCollapse ? '200px' : '64px'" class="hide">
  26. <!-- 绑定相同的事件 -->
  27. <div class="toggle" @click="toggleCollapse">|||</div>
  28. <!-- 这里collapse取值相反 -->
  29. <!-- collapse-transition:开启折叠动画 -->
  30. <el-menu :collapse="!isCollapse" :collapse-transition="false" default-active="2" class="el-menu-vertical-demo" @open="handleOpen"
  31. @close="handleClose" background-color="#333744" text-color="#fff" active-text-color="#ffd04b">
  32. <el-submenu index="1">
  33. <template slot="title">
  34. <i class="el-icon-location"></i>
  35. <span>导航一</span>
  36. </template>
  37. <el-menu-item index="1-4">选项1</el-menu-item>
  38. </el-submenu>
  39. </el-menu>
  40. </el-aside>
  41. <el-main>主体</el-main>
  42. </el-container>
  43. </el-container>
  44. </template>
  45. <script>
  46. export default {
  47. name: 'App',
  48. data () {
  49. return {
  50. // 控制侧边栏的显示与隐藏
  51. isCollapse: false // 默认显示侧边栏
  52. }
  53. },
  54. methods: {
  55. // 控制侧边栏的显示与隐藏
  56. toggleCollapse () {
  57. this.isCollapse = !this.isCollapse
  58. }
  59. }
  60. }
  61. </script>
  62. <style lang="less">
  63. html,
  64. body,
  65. .el-container {
  66. margin: 0;
  67. height: 100%;
  68. }
  69. .el-container {
  70. .el-header {
  71. padding: 0;
  72. background-color: #373d41;
  73. color: #fff;
  74. }
  75. .el-aside {
  76. background-color: #333744;
  77. // 默认只显示一份aside侧边栏
  78. &.show {
  79. display: block;
  80. }
  81. &.hide {
  82. display: none;
  83. }
  84. // 媒体查询,实现响应式
  85. @media (max-width: 992px) {
  86. // 取值与上面相反即可
  87. &.show {
  88. display: none;
  89. }
  90. // 取值与上面相反即可
  91. &.hide {
  92. display: block;
  93. }
  94. }
  95. .toggle {
  96. letter-spacing: 0.2em;
  97. color: #fff;
  98. text-align: center;
  99. line-height: 24px;
  100. background-color: #4a5064;
  101. cursor: pointer;
  102. }
  103. .el-menu {
  104. border-right: none;
  105. }
  106. }
  107. .el-main {
  108. background-color: #eaedf1;
  109. }
  110. }
  111. </style>

效果如下:

注:媒体查询设置的边界值是992px,小于992px折叠,大于992px展开。

 

源码地址:elementUI侧边栏响应式布局: elementUI侧边栏响应式布局

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/612598
推荐阅读
相关标签
  

闽ICP备14008679号