vue 多个遮罩层 只显示最高层

效果如下:
在这里插入图片描述
这里有三个弹窗 但遮罩层只有最新打开的弹窗有

具体实现

首先统一 弹窗遮罩层的类名 假设class 名为popup-fixed-scroll,我们只需要保证这个类名只有弹窗的时候使用,且一个弹窗只有一个。这样,当我们打开两个的弹窗时 就存在了两个 class 名为popup-fixed-scroll的遮罩层元素,可以通过JS的 getElementsByClassName 返回的一个数组,新弹出的窗口为数组最后面那个,由此,我们可以通过判断 其余窗口遮罩层都设置透明,只保留最后数组元素的遮罩层样式。注意:弹窗出现与销毁时都需要判断。

	/* 
      设置遮罩层
    */
    setbgColor() {
      let bgColor1 = "rgba(0, 0, 0, 0)";
      let bgColor2 = "rgba(0, 0, 0, 0.6)";
      let scrollDom = document.getElementsByClassName("popup-fixed-scroll");
      let scrollDomLength = scrollDom.length;
      for (var i = 0; i < scrollDomLength; i++) {
        if (i < scrollDomLength - 1) {
          scrollDom[i].style.backgroundColor = bgColor1;
        } else {
          scrollDom[i].style.backgroundColor = bgColor2;
        }
      }
    },
    //使用
      mounted() {
    	this.setbgColor();
  	},
  	 beforeDestroy() {
       this.setbgColor();
  	},
  	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值