手动a-tooltip的显示与隐藏

a-tooltip显示与隐藏

场景:有很多弹框,但是弹框相互间可能存在遮挡,第一个弹框是点击出现提示,第二个和第三个是获得焦点就出现提示

a-tooltip自带了一个属性,trigger可以控制弹框的显示与隐藏,但是我们有时想自己设置触发弹框的时机,visibleChange可以监听到弹框的显示变化

在这里插入图片描述

初始方案**:display,利用display:none来实现弹框1的隐藏

问题:存在多个获得焦点显示自己的弹框,隐藏点击的弹框1时,(比如显示弹框3,隐藏1和2)弹框1后面需要点击两次,才会显示

解决方法,使用v-model来控制弹框的显示与隐藏

<a-tooltip
      trigger="click"
      overlayClassName="firstClass"
      v-model="isTooltip"
    >
      <div @click="tipChange">这是弹框1的内容</div>
      <template slot="title">
        <div>
          111111111111111111111
        </div>
      </template>
    </a-tooltip>

    <a-tooltip @visibleChange="secondChange">
      <div>这是第二个需要弹框的地方</div>
      <template slot="title">
        <div>
          222222222222222222222222222222222
        </div>
      </template>
    </a-tooltip>

    <a-tooltip @visibleChange="thirdChange">
      <div>这是第三个需要弹框的地方</div>
      <template slot="title">
        <div>
          3333333333333333333333333333333333
        </div>
      </template>
    </a-tooltip>

   data(){
     return{
        isTooltip:false
     }
   }

   secondChange(isShow) {
      console.log(isShow);
      if (isShow) {
        const doms = document.querySelectorAll(".firstClass");
        if (doms) {
          // doms[0].style.display=none
          Array.from(doms).forEach((item) => {
          // 如果使用display:none来控制显示与隐藏,如果只有弹框2,没有3,则正常,但是同时有多个时,那么              会出现一个bug,弹框2或3显示后,弹框1需要显示,则需要点击两次
            // item.style.display = "none";
            this.isTooltip = false;
          });
        }
      }
    },
    thirdChange(isShow) {
      if (isShow) {
        const doms = document.querySelectorAll(".firstClass");
        if (doms) {
          // doms[0].style.display=none
          Array.from(doms).forEach((item) => {
            // item.style.display = "none";
            this.isTooltip = false;
          });
        }
      }
    },
    tipChange() {
      this.isTooltip = !this.isTooltip;
    },

},
tipChange() {
this.isTooltip = !this.isTooltip;
},


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值