Browse Source

feat: 修复MENUmask出现滚动条问题

liuguanglun 5 years ago
parent
commit
bdf6de0f90
3 changed files with 6 additions and 4 deletions
  1. 1 1
      src/packages/menu/demo.vue
  2. 1 1
      src/packages/menu/menu.scss
  3. 4 2
      src/packages/menu/menu.vue

+ 1 - 1
src/packages/menu/demo.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <div class="demo-list">
+  <div :style="{ padding: 0 }">
     <h4>基础样式</h4>
     <h4>基础样式</h4>
     <nut-menu mask :list="list" type="simple" @open="onOpen" @close="onClose" />
     <nut-menu mask :list="list" type="simple" @open="onOpen" @close="onClose" />
     <h4>多选样式</h4>
     <h4>多选样式</h4>

+ 1 - 1
src/packages/menu/menu.scss

@@ -7,7 +7,7 @@ $titleHeight: 50px;
   &-mask {
   &-mask {
     position: absolute;
     position: absolute;
     width: 100%;
     width: 100%;
-    height: 100vh;
+    height: 100%;
     background-color: $mask-bg;
     background-color: $mask-bg;
   }
   }
 
 

+ 4 - 2
src/packages/menu/menu.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
-  <div class="nut-menu">
+  <div class="nut-menu" ref="menu">
     <transition :name="!isAnimation ? 'nutFade' : ''">
     <transition :name="!isAnimation ? 'nutFade' : ''">
-      <div class="nut-menu-mask" @click="onMaskClick" v-show="isVisible && mask" />
+      <div class="nut-menu-mask" @click="onMaskClick" v-show="isVisible && mask" :style="maskStyle" />
     </transition>
     </transition>
     <div class="nut-menu-title">
     <div class="nut-menu-title">
       <div v-for="(title, index) in getMenuTitles" class="nut-menu-title-wrapper" :key="index" @click="onMenu(index)">
       <div v-for="(title, index) in getMenuTitles" class="nut-menu-title-wrapper" :key="index" @click="onMenu(index)">
@@ -125,11 +125,13 @@ export default {
       datalist: [], // menu组件数据源
       datalist: [], // menu组件数据源
       menuIndex: 0, // 当前列索引
       menuIndex: 0, // 当前列索引
       isVisible: false, // 当前面板是否打开
       isVisible: false, // 当前面板是否打开
+      maskStyle: {},
     };
     };
   },
   },
   mounted() {
   mounted() {
     this.datalist = this.list;
     this.datalist = this.list;
     this.isVisible = this.visible;
     this.isVisible = this.visible;
+    this.maskStyle = { height: 'calc(100vh - ' + this.$refs.menu.offsetTop + 'px)' };
   },
   },
   computed: {
   computed: {
     okBtnTxt() {
     okBtnTxt() {