鼠标悬停n秒后再触发某个动作

2021-04-22  本文已影响0人  郝艳峰Vip

前言


在项目中有一个需求,就是鼠标hover时展示二维码,一开始就直接写的展示(二维码是从接口返回来的),但是发现如果快速移入移出多个不同的目标,就会发生二维码展示错乱以及价格展示错误,最严重的一点就是会一直调接口消耗服务性能,并且产生好多垃圾数据。

解决方案就是,当鼠标移入某个目标区域悬停2秒后再触发接口获取二维码,接下来看代码

   <div
              class="mouseEnter_show_qr"
              @mouseenter="show_qr_area($event)"
              @mouseleave="hide_qr_area"
            >
         鼠标悬停展示二维码
 </div>
<script>
export default {
      data(){
         return {
             delay_loading_qr :'',
          }
 
         },
      methods:{
              // hover支付的button时展示二维码
    show_qr_area(event) {
      this.delay_loading_qr = setTimeout(() => { 
       // 这里是调用二维码接口 
        this.deal_pay_button('showQR', event)
      }, 2000)
    },
   //  鼠标离开后就要关掉该定时器,这样就不会在2秒后再次请求接口
//    如果离开时不关掉就变成了鼠标悬停两秒后触发接口了。
    hide_qr_area() {
      clearTimeout(this.delay_loading_qr)
    },
       
      }
   }
</script>
上一篇 下一篇

猜你喜欢

热点阅读