解决tippy.js插件在light模式下,在连续点击后,周围阴影颜色逐渐加重的问题

tippy.js 插件是一个气泡框提示插件,非常好用,但是在light模式下,鼠标连续移入同一个内容后,你会发现气泡框周围的阴影的颜色逐渐加重,如下图:

通过打开控制台调试,发现是因为:每次弹出气泡框,tippy都是新建了一个实例,并且之前移入产生的实例并未销毁,所以就会出现实例重叠,阴影加深的情况,所以一种解决办法是 气泡框隐藏的时候,销毁这个实例,具体办法见这位大佬的博客https://juejin.cn/post/7172386909807706148

我用这个方法解决后发现,在慢慢的连续移入后,不会出现上述问题了,但是速度很快的移入还是会出现阴影加深的现象。所以,产生了另一种方法:

思路:使用一个变量myTippy将实例t1存储起来,如果移入的是同一个内容,那就显示t1,如果移入的不是同一个内容,就销毁变量中存储的实例,就重新创建一个实例t2,并将t2存储在变量中。这样每次都只会有一个实例被创建,不再会出现重叠的情况。

部分vue代码如下:

if(this.el == el){ // 如果鼠标移入的是同一个内容,el指的是当前元素,this.el指的是上次移入的元素

        this.myTippy.show(); // 调用实例本身方法,使其显示

} else {

        this.myTippy && this.myTippy.destroy();

        this.el = el;

        this.myTippy = tippy(el, {theme:'light', ........})

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值