ECharts X轴坐标文字超长字符用....显示,鼠标移上名称能够显示全称

1.首先在option中设置triggerEventtrue

let format = (e) => {
 	return e.substr(0, 4) + '...';
}
xAxis: {
  axisLabel: {
    interval: 0,
    rotate: 40,
    formatter: format,
    color: '#333'
  },
  data: nameArr,
  triggerEvent: true,// 设置为true后具有x轴文字过长,显示省略号,hover上去显示全部的功能
},

2.在echarts中引入hover样式div

<div>
    <div ref={container => { this.container = container; }} className={"container " + (this.props.className || '')}/>
    <div className="x-axis-tip"></div>
</div>

3. 写入x-axis-tip样式(字符过长可换行):

.x-axis-tip {
  display: none;
  position: absolute;
  padding: 5px 5px;
  font-size: 12px;
  line-height: 18px;
  color: #575757;
  background: #FFFFFF;
  box-shadow: 0 1px 4px 0 rgba(0,0,0,0.20);
  border-radius: 4px;
  max-width: 280px;
  white-space: normal;
  word-break: break-all;
 }

4.在echarts初始化后传入事件:

if (!this.chart) {
    this.chart = e.init(this.container);
    if (this.props.bindEvents) {
      this.props.bindEvents(this.chart); //绑定点击事件
    }
    if (this.props.bindTriggerEvent) {
      this.props.bindTriggerEvent(this.chart); //绑定x轴文字hover事件
    }
}

5.页面组件调用

<ECharts
   options={getChartsOptionsForLine(barData)}
   bindEvents={c => { this.bindChartEvents(c) }}
   bindTriggerEvent={c => { this.bindTriggerEvent(c) }}
/>

6.页面事件bindTriggerEvent调用

   bindTriggerEvent = (chart) => {
    chart.on('mouseover', function (params) {
      if (params.componentType == 'xAxis') {
        let offsetX = params.event.event.offsetX;
        let offsetY = params.event.event.offsetY;
        let xAxisTip = document.querySelector('.x-axis-tip');
        xAxisTip.innerText = params.value.split("#")[0];
        xAxisTip.style.left = offsetX +  "px";
        xAxisTip.style.top = offsetY + 10 + "px";
        xAxisTip.style.display = 'block';
      }
    });
    chart.on('mousemove', function (params) {
      if (params.componentType == 'xAxis') {
        let offsetX = params.event.event.offsetX;
        let offsetY = params.event.event.offsetY;
        let xAxisTip = document.querySelector('.x-axis-tip');
        xAxisTip.innerText = params.value.split("#")[0];
        xAxisTip.style.left = offsetX + 30 +  "px";
        xAxisTip.style.top = offsetY + 10 + "px";
        xAxisTip.style.display = 'block';
      }
    });
    chart.on('mouseout', function (params) {
      let xAxisTip = document.querySelector('.x-axis-tip');
      xAxisTip.style.display = 'none';
    });
  }

7.实现效果

在这里插入图片描述
注: 需要完整代码可加微信号:han2013555888

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值