h5頁面含有多個echarts,其中每個都有tooptips,點選其他區域tooptip不消失,體驗不好
阿新 • • 發佈:2021-07-02
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改成一個變數,在程式碼中根據需求修改這個變數值也可以