• VUE 动态设置子组件弹窗的层级,解决弹窗层级失效问题


     

    VUE 动态设置子组件弹窗的层级,解决弹窗层级失效问题

     
     

    子组件点击更多,出弹窗,在其中存入全局的变量

       
     more() {
          // 此处是为了动态修改点出来弹窗的z-index 设置全局的一个变量 监听它
          this.$store.commit("getActive", 'middle');
          this.$nextTick(
            this.$refs.moreList.show("")
          )
        },
    

      

     
     

    父组件 template里面用参数定义z-index

    <!-- 右边 -->
            <div
              class="left-con"
              :class="this.$store.state.showCon ? '' : 'left-hide'"
              :style="show3D ? 'z-index: 5' : `z-index:${this.zIndexLeft}`"
            >
              <!--小区概况-->
              <sketchNew />
              <!-- 人员数量 -->
              <people-data />
              <!-- 房屋数量 -->
              <house-data />
              <!-- 人员进出 -->
              <peopleIn />
            </div>
     
     

    同时给z-index设置默认值

      data() {
        return {
          showButton: true,
          show3D: false,
          zIndexLeft: 50, // 非3D状态下默认值 解决百度地图和3D地图的下弹窗对层级不同要求的问题
          zIndexMiddle: 45, ///非3D状态下默认值
          zIndexRight: 40, //非3D状态下默认值
        };
     

    在计算属性获取和返回存储的active

      
    computed: {
        isActive() {
          return this.$store.state.active;
          console.log(this.$store.state.active);
        },
      },

     

    监听isActive,根据不同的类型,改变三个模块的z-index

     
    watch: {
        isActive: {
          async handler(oldV, newV) {
            console.log(oldV, newV);
            console.log("变化了");
            if (oldV === "middle") {
              this.zIndexMiddle = 100;
              this.zIndexLeft = 50;
              this.zIndexRight = 40;
              console.log("设置中间的z-index");
            } else if (oldV === "right") {
              this.zIndexRight = 100;
              this.zIndexMiddle = 45;
              this.zIndexLeft = 50;
              console.log("设置右边的z-index");
            } else if (oldV === "left") {
              this.zIndexLeft = 100;
              this.zIndexMiddle = 45;
              this.zIndexRight = 40;
              console.log("设置左边的z-index");
            }
          },
          immediate: true,
        },
      },
     

    你好,我是Jane,如果万幸对您有用,请帮忙点下推荐,谢谢啦~另外,咱们闪存见哦~
  • 相关阅读:
    第三章 C++中的C 《C++编程思想》
    网络时间协议 网络对时程序
    不相交集类应用:迷宫生成
    第一章 对象导言 第二章 对象的创建与使用
    获取本机IP MAC地址
    详解C#制做Active控件的五个步骤
    js HTML编码转换
    Web应用Word编辑
    HTML <map>标签的使用
    Web(浏览器)打开运行WinForm应用程序
  • 原文地址:https://www.cnblogs.com/jane-panyiyun/p/14626410.html
Copyright © 2020-2023  润新知