Echarts X轴内容过长自动隐藏,鼠标移动上去显示全部名称方法
最近公司做项目,使用echarts做开发,碰到一些数据的名称很长导致图例展示的效果不是很好,自己写了一个方法,当X轴内容过长时自动隐藏,鼠标移动上去显示全部名称
样例:


图二是鼠标移动到名称显示的,怎么带着鼠标一起截图博主不是很清楚,不要在意这些细节好了.
这里来说一下博主的实现方式
1. 设定mychart.on('mouseover',functionx) ,mychart的鼠标悬浮事件,当鼠标移动到x轴的名称时触发这个事件.这里需要把x轴设置为
triggerEvent: true,切记.
2. 声明一个不显示的div框,这个框是用在鼠标移到类目上,显示展开的全部的名称的.
3. 获得鼠标的位置,把这个位置赋给div框
4.添加mychart.on('mouseout',functiony) 鼠标移除事件.
5. 当类目名称长度大于5的时候 博主就把他substring了 再拼接上"..".
下面是源码:
 var myChart = echarts.init(document.getElementById('main'));
             option = {
                     xAxis: {
                         triggerEvent: true,
                         type: 'category',
                         data: ['这是名称非常长的商品1', '这是名称比商品1还长很多的商品2', '这同样是名称很长的商品3', '短的商品4'],
                         axisLabel: {
                             formatter: function(value) {
                                 var res = value;
                                 if(res.length > 5) {
                                     res = res.substring(0, 4) + "..";
                                 }
                                 return res;
                             }
                         }
                     },
                         yAxis: {
                             type: 'value'
                         },
                         series: [{
                             data: [120, 200, 150, 80],
                             type: 'bar'
                         }]
                     }
                     myChart.setOption(option);
                     extension(myChart);
                     function extension(mychart) {
               //判断是否创建过div框,如果创建过就不再创建了
                         var id = document.getElementById("extension");
                         if(!id) {
                             var div = "<div id = 'extension' sytle=\"display:none\"></div>"
                             $('html').append(div);
                         }
                         mychart.on('mouseover', function(params) {
                             if(params.componentType == "xAxis") {
                                 $('#extension').css({
                                     "position": "absolute",
                                     "color": "black",
                                     //"border":"solid 2px white",
                                     "font-family": "Arial",
                                     "font-size": "20px",
                                     "padding": "5px",
                                     "display": "inline"
                                 }).text(params.value);
                                 $("html").mousemove(function(event) {
                                     var xx = event.pageX - 30;
                                     var yy = event.pageY + 20;
                                     $('#extension').css('top', yy).css('left', xx);
                                 });
                             }
                         });
                         mychart.on('mouseout', function(params) {
                             if(params.componentType == "xAxis") {
                                 $('#extension').css('display', 'none');
                             }
                         });
                     };
想上传源码的..没找到.
总之使用三步骤
1. x轴上添加 triggerEvent: true
2.加入这段代码隐藏过长的文字,长度可以自己定义
  axisLabel: {
                              formatter: function(value) {
                                 var res = value;
                                 if(res.length > 5) {
                                     res = res.substring(0, 4) + "..";
                                 }
                                 return res;
                             }
                         }
                     }
3. 调用 extension('这里传入你的容器');
就可以使用了												
											Echarts X轴内容过长自动隐藏,鼠标移动上去显示全部名称方法的更多相关文章
- Android TextView内容过长加省略号,点击显示全部内容
		
在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下: 在xml中:android:ellipsize="end" 省略号在结尾an ...
 - Delphi锁定鼠标 模拟左右键 静止一会自动隐藏鼠标
		
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
 - div内容过长自动省略号
		
<div class="tits" style="width:900px;">${item.note}</div> //自 ...
 - C# winform 实现 qq 在屏幕边缘 自动隐藏 鼠标移过去 移上去 又自动显示
		
代码下载地址 http://download.csdn.net/detail/simadi/7677147
 - Html内容超出标记宽度后自动隐藏
		
我们在显示长文本时,往往需要去在C#端去截取字符,但这绝对不是一个好方面,因为我们的长文本往往都是代HTML标记的,你一个载不好,就会出现乱码问题(出现半个HTML标记),而比较好的作法就是通过CSS ...
 - Echarts x轴文本内容太长的几种解决方案
		
Echarts 标签中文本内容太长的时候怎么办 ? - 1对文本进行倾斜 在xAxis.axisLabe中修改rotate的值 xAxis: { data: ["衬衫11111", ...
 - echarts图表X轴文字过长解决解决方案:根据文字长度自动旋转
		
Echarts 标签中文本内容太长的时候怎么办 ? 关于这个问题搜索一下,有很多解决方案.无非就是 省略(间隔显示).旋转文字方向.竖排展示 前面两种解决方案,就是echarts暴露的: { ax ...
 - echarts x轴名称太长
		
echarts x轴名称太长了,隐藏一部分,鼠标移到名称上,显示全称 function extension(mychart, type) { let extension = document.getE ...
 - 解决html表格中内容超出不强制换行和超出宽度自动隐藏并显示省略号
		
在表格布局中经常会遇到因为表格内容长短的变化导致布局混乱的情况,这个时候我们可能会有为了布局稳定把单元格宽度写死的情况:但是我们设置了宽度却发现超出了宽度之后会自动变大,用css定义元素的overfl ...
 
随机推荐
- 16_Java正则和日期对象
			
01正则表达式的概念和作用 * A: 正则表达式的概念和作用 * a: 正则表达式的概述 * 正则表达式也是一个字符串,用来定义匹配规则,在Pattern类中有简单的规则定义. 可以结合字符串类的方法 ...
 - promtheus 配置文件
			
全局配置 global 属于全局的默认配置,它主要包含 4 个属性, scrape_interval: 拉取 targets 的默认时间间隔. scrape_timeout: 拉取一个 target ...
 - Linux监控和安全运维  1.9 zabbix增加客户端监控
			
1.在客户端安装 zabbix20与服务器相对应. yum install zabbix20-agent 2.修改配置文件 vim /etc/zabbix_agentd.conf Server=127 ...
 - Ubuntu下配置eclipse环境
			
一.安装JDK,配置Java环境变量 1.下载JDK,Java SE 8的官方网址是http://www.oracle.com/technetwork/java/javase/downloads/jd ...
 - 让低版本IE支持Html5的新语义标签
			
HTML5能为我们做的事儿很多,最为可口的就是语义化标签的应用,如果你已经在Chrome或者其他支持HTML5的浏览器上用过它的牛x,那这篇文章对你一定有用,因为现在你也可以在IE上用到HTML5. ...
 - 后端生成二维码 - C#生成二维码(QR)
			
最近在github上找到一个相对比较好的C#二维码生成类库.在这里和大家分享一下. github地址:https://github.com/codebude/QRCoder 把解决方案下载下来,编译生 ...
 - 漂亮的表格样式–>使用CSS样式表控制表格样式
			
依照WEB2.0风格,设计了几个表格样式,希望大家喜欢.WEB2.0提倡使用div开布局,但不是要完全放弃使用表格,表格在数据展现方面还是不错的选择.现在介绍使用CSS样式表来控制.美化表格的方法. ...
 - Sqlserver2005中的varchar,varchar,char,nchar的比较
			
C#窗体中的TextBox 的MaxLength:与Nvarchar类似,不论是什么,最多只能为2.我我11我1
 - textarea文本域的高度随内容的变化而变化
			
用css控制textarea文本域的高度随内容的变化而变化,不出现滚动条. CSS代码: 复制代码 代码如下: .t_area{ width:300px; overflow-y:visible } & ...
 - python 文件的读取&更新
			
[python 文件的读取&更新] 任务抽象: 读取一个文件, 更新内容后, 重新写入文件. 实际应用: 磁盘上的一个配置文件, 读入内存后为一个dict, 对dict更新后重新写入磁盘. d ...