项目要求鼠标悬停在高亮部分时,可以实现左右地图联动。我尝试了connect,但是没有用,所以我自己写了这段代码。代码思路是:当鼠标移入地图时,另一边的地图根据鼠标悬停得到的区域名称高亮区域;当鼠标移入地图时,另一侧地图的tooltip会悬浮在该坐标位置上,保证两张地图的tooltip位置相同。遇到的坑:使用dispatchAction触发showTip,你会发现tooltip只能显示很短的时间,所以当我将鼠标移入地图时,设置tooltip[0].alwaysShowContent=true和tooltip[0].triggerOn="另一张地图没有"。官网要求使用dispatchAction触发showTip设置triggerOn="none",但我试过是否可用,alwaysShowContent=true即可;设置工具提示时,使用该对象。tooltip在获取的时候会变成一个数组,可能echarts就是为了满足多tooltips的需求。将函数传入echarts实例即可,代码如下://前面代码省略直接调用,传入echarts实例对象connectMap(chart1,chart2);functionconnectMap(chart1,chart2){//当鼠标移动到地图左侧chart1.on("mouseover",function(target){varoption=chart2.getOption();option.tooltip[0].alwaysShowContent=true;option.tooltip[0].triggerOn="无";chart2.setOption(选项,真);chart2.dispatchAction({type:'downplay',seriesName:'rightmap'})chart2.dispatchAction({type:'highlight',name:target.name,})})chart1.on("mousemove",function(target){chart2.dispatchAction({type:'showTip',name:target.name,x:target.event.offsetX,y:target.event.offsetY})})chart1.on("mouseout",function(){varoption=chart2.getOption();option.tooltip[0].alwaysShowContent=错误的;option.tooltip[0].triggerOn="mousemove";chart2.setOption(选项,真);chart2.dispatchAction({type:'hideTip'})})//当老鼠标移到右边的地图chart2.on("mouseover",function(target){varoption=chart1.getOption();option.tooltip[0].alwaysShowContent=true;option.tooltip[0].triggerOn="none";chart1.setOption(option,true);chart1.dispatchAction({type:'downplay',seriesName:'rightmap'})chart1.dispatchAction({type:'highlight',name:target.name,})})chart2.on("mousemove",function(target){chart1.dispatchAction({type:'showTip',name:target.name,x:target.event.offsetX,y:target.event.offsetY})})chart2.on("mouseout",function(){varoption=chart1.getOption();option.tooltip[0].alwaysShowContent=false;option.tooltip[0].triggerOn="mousemove";chart1.setOption(选项,真);chart1.dispatchAction({type:'hideTip'})})}
