1. 程式人生 > 其它 >h5頁面含有多個echarts,其中每個都有tooptips,點選其他區域tooptip不消失,體驗不好

h5頁面含有多個echarts,其中每個都有tooptips,點選其他區域tooptip不消失,體驗不好

h5頁面含有多個echarts,其中每個都有tooptips,點選其他區域tooptip不消失,體驗不好

解決方法一:

以vue腳手架處理為例:

處理思路:點選頁面空白處,判斷當前點選區域是否是canvas,如果不是就將所有的echarts中的tooptips隱藏

1、在main.js中新增js

vue.prototype.pageClick = function(id,callback){
  document.getElementById(id).onclick = function(e){
    if(e.target.nodeName != 'CANVAS'){
                callback()     
    }
  }  
}

2、在使用echarts的頁面

mounted(){
  this.pageClick('整個頁面最外層的id',this.removeTooptips)  
},
methods:{
 removeTooptip(){
     var arr = document.getElementsByTagName('canvas');
     for(var i=0;i<arr.length;i++){
      //這裡的id是echarts生成例項上的id,getInstanceByDom方法是找到id下的echarts例項
      let id = arr[i].parentNode.parentNode.getAttribute("id");
      var ee = echarts.getInstanceByDom(document.getElementById(id));
      ee.dispatchAction({
         type:'hideTip'
      })
      ee.dispatchAction({
          type:'updateAxisPointer',
       })
     }
  }
}        

 解決方法二:

在echarts的setOption裡面的tooptips裡面有個屬性是show:true,也可以將這裡的true改成一個變數,在程式碼中根據需求修改這個變數值也可以