echarts统计图x轴文字过长,以省略号显示,鼠标经过提示全部内容

效果图如下
在这里插入图片描述

主要代码如下:

//1.js代码内加入extension方法,chart参数是echarts实例
function extension(chart) {

            // 注意这里,是以X轴显示内容过长为例,如果是y轴的话,需要把params.componentType == 'xAxis'改为yAxis
            // 判断是否创建过div框,如果创建过就不再创建了
            // 该div用来盛放文本显示内容的,方便对其悬浮位置进行处理
            var elementDiv = document.getElementById('extension')
            if (!elementDiv) {
                var div = document.createElement('div')
                div.setAttribute('id', 'extension')
                div.style.display = 'block'
                document.querySelector('html').appendChild(div)
            }

            chart.on('mouseover', function (params) {
                if (params.componentType == 'xAxis') {
                    var elementDiv = document.querySelector('#extension')
                    //设置悬浮文本的位置以及样式
                    var elementStyle =
                        'position: absolute;z-index: 99999;color: #fff;font-size: 12px;padding: 5px;display: inline;border-radius: 4px;background-color: #303133;box-shadow: rgba(0, 0, 0, 0.3) 2px 2px 8px'
                    elementDiv.style.cssText = elementStyle
                    elementDiv.innerHTML = params.value
                    //#main为echarts图的容器id
                    document.querySelector('#main').onmousemove = function (event) {
                        var elementDiv = document.querySelector('#extension')
                        var xx = event.pageX - 10
                        var yy = event.pageY + 25
                        console.log('22', xx)
                        elementDiv.style.top = yy + 'px'
                        elementDiv.style.left = xx + 'px'
                    }
                }
            })
            chart.on('mouseout', function (params) {
                //注意这里,我是以X轴显示内容过长为例,如果是y轴的话,需要改为yAxis
                if (params.componentType == 'xAxis') {
                    var elementDiv = document.querySelector('#extension')
                    elementDiv.style.cssText = 'display:none'
                }
            })
        }
        
// 基于准备好的dom,初始化echarts实例
//var myChart = echarts.init(document.getElementById('main'));

//2.在option配置的xAxis里加入属性
 // x轴文字超出,...显示
                triggerEvent: true,
                axisLabel: {
                    // 文字省略
                    formatter: function (value) {
                        if (value.length > 3) {
                            return `${value.slice(0, 3)}...`
                        }
                        return value
                    }
                },
// 使用刚指定的配置项和数据显示图表。
//myChart.setOption(option);
        
//3.echarts实例创建完成,配置项、数据显示图表完成,调用extension方法
extension(myChart);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值