经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
VUE 动态设置子组件弹窗的层级,解决弹窗层级失效问题
来源:cnblogs  作者:jane_panyiyun  时间:2021/4/12 9:52:57  对本文有异议
 

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

 
 

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

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

  

 
 

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

  1. <!-- 右边 -->
  2. <div
  3. class="left-con"
  4. :class="this.$store.state.showCon ? '' : 'left-hide'"
  5. :style="show3D ? 'z-index: 5' : `z-index:${this.zIndexLeft}`"
  6. >
  7. <!--小区概况-->
  8. <sketchNew />
  9. <!-- 人员数量 -->
  10. <people-data />
  11. <!-- 房屋数量 -->
  12. <house-data />
  13. <!-- 人员进出 -->
  14. <peopleIn />
  15. </div>

 

 
 

同时给z-index设置默认值

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

 

 

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

  
  1. computed: {
  2. isActive() {
  3. return this.$store.state.active;
  4. console.log(this.$store.state.active);
  5. },
  6. },

 

 

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

 
  1. watch: {
  2. isActive: {
  3. async handler(oldV, newV) {
  4. console.log(oldV, newV);
  5. console.log("变化了");
  6. if (oldV === "middle") {
  7. this.zIndexMiddle = 100;
  8. this.zIndexLeft = 50;
  9. this.zIndexRight = 40;
  10. console.log("设置中间的z-index");
  11. } else if (oldV === "right") {
  12. this.zIndexRight = 100;
  13. this.zIndexMiddle = 45;
  14. this.zIndexLeft = 50;
  15. console.log("设置右边的z-index");
  16. } else if (oldV === "left") {
  17. this.zIndexLeft = 100;
  18. this.zIndexMiddle = 45;
  19. this.zIndexRight = 40;
  20. console.log("设置左边的z-index");
  21. }
  22. },
  23. immediate: true,
  24. },
  25. },

 

 

原文链接:http://www.cnblogs.com/jane-panyiyun/p/14626410.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号