echarts 使用formatter 修改鼠标悬浮事件信息操作


Posted in Javascript onJuly 20, 2020

formatter 一般用于格式化鼠标悬浮时间的信息,如果你的数据是JSON数组格式,那么不必和我这样一一判断扇形图的 ticket 值,使用 formatter 的 callback 时间即可自行对应

formatter: function (params, ticket, callback) {
     console.log(params);
     console.log(ticket);
     var str = '明细:<br/>';
     if(ticket == 'item_操作概况_0'){
      for(var i in data.mustMod){
       str += "模块:" + data.mustMod[i].MODULE_NAME +" "+data.mustMod[i].TOTAL +"("+data.mustMod[i].precentAcccess+"%)" + "<br/> " ;
      }
      //alert(data.lessMod[data.lessMod.length-1].totalAccess);
      str += "总数:"+ data.must.totalAccess + " " +"("+ data.must.totalPrecent+"%)" + "<br/> ";
      }
     if(ticket == 'item_操作概况_1'){
      for(var i in data.moreMod){
       str += "模块:" + data.moreMod[i].MODULE_NAME +" "+data.moreMod[i].TOTAL +"("+data.moreMod[i].precentAcccess+"%)" + "<br/> " ;
    }
      //alert(data.lessMod[data.lessMod.length-1].totalAccess);
      str += "总数:"+ data.more.totalAccess + " " +"("+ data.more.totalPrecent+"%)" + "<br/> ";
      }
     if(ticket == 'item_操作概况_3'){
      for(var i in data.lessMod){
       str += "模块:" + data.lessMod[i].MODULE_NAME +" "+data.lessMod[i].TOTAL +"("+data.lessMod[i].precentAcccess+"%)" + "<br/> " ;
      }
      //alert(data.lessMod[data.lessMod.length-1].totalAccess);
      str += "总数:"+ data.less.totalAccess + " " +"("+ data.less.totalPrecent+"%)" + "<br/> ";

     }
     if(ticket == 'item_操作概况_2'){
      for(var i in data.normalMod){
       str += "模块:" + data.normalMod[i].MODULE_NAME +" "+data.normalMod[i].TOTAL +"("+data.normalMod[i].precentAcccess+"%)" + "<br/> " ;
      }
      //alert(data.lessMod[data.lessMod.length-1].totalAccess);
      str += "总数:"+ data.normal.totalAccess + " " +"("+ data.normal.totalPrecent+"%)" + "<br/> ";

     }
     //callback(ticket, str);
     return str;
    }
   },

补充知识:echarts点击柱状图事件,echarts柱状图悬浮展示相应的信息,echarts柱状图柱头展示信息

悬浮显式在tooltip中设置formatter

柱状图中的表头显式在series下的itemStyle下的normal下的label下的formatter中设置

点击事件就是:【先获取柱状图的div 然后和 对象.on() 】

var myChart = echarts.init(document.getElementById('main'));

myChart.on('click', function (params) {});

先上效果图

echarts 使用formatter 修改鼠标悬浮事件信息操作

ajax:

$.ajax({
   url: "../../basexxxx/getxxxxxxx",
   type: "post",
   data: {
    param: param
   },
   success: function (data) {
    option.series[0].data = xxxxxxxxxxx;//百分比
    // option.series[1].data = xxxxxxxxxxx;
    option.xAxis[0].data = xxxxxxxxxxxx;//项点名称
 
    riskNames = xxxxxxxxxx;
    //违反次数
    breakCount = xxxxxxxxx;//xx次数
    //检查次数
    checkCount = xxxxxxxxxx;
    //描述
    riskLevelDetails = xxxxxxxxxxx;
    //项点id集合
    riskIds = data.xxxxxxxxx;
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
 
   }
  });

HTML:

<div style="margin: 0;padding: 5px; max-width:100%;width: 100%;overflow-x: auto;">
 <div id="main" style="width: 350%;height:500px;"></div>
</div>

然后就是option

// 基于准备好的dom,初始化echarts实例
 var myChart = echarts.init(document.getElementById('main'));
 var breakCount = [];
 var checkCount = [];
 var riskLevelDetails = [];
 var riskNames = [];
 var riskIds = [];
 var option = {
  color: ['#3398DB'],
  tooltip: {
   trigger: 'axis',
   axisPointer: { // 坐标轴指示器,坐标轴触发有效
    type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
   },
   //悬浮提示
   formatter: function (params) {
    for (var i = 0, l = option.xAxis[0].data.length; i < l; i++) {
     if (option.xAxis[0].data[i] == params[0].name) {
      var val3 = riskLevelDetails[i] || 0;
      // toFixed(1)精确小数点
      return '项点名称:' + riskNames[i] + '<br>'
       + '违反占比:' + option.series[0].data[i].toFixed(1) +'%'+ '<br>'
       + riskLevelDetails[i];
     }
    }
   }
  },
  grid: {
   left: '3%',
   right: '4%',
   bottom: '3%',
   containLabel: true
  },
  xAxis: [{
   type: 'category',
   data: [],
   axisTick: {
    alignWithLabel: true
   },
   axisLabel: {
    interval: 0,
    rotate: 40
   }
  }],
  yAxis: [{
   type: 'value'
  }],
  series: [{
   name: '违反占比',
   type: 'bar',
   barWidth: '60%',
   itemStyle: {
    normal: {
     //可根据柱状图量的大小进行判断变换颜色
     color: function (params) {
      if (params.data < 60) {
       return 'green'
      } else {
       return '#c23531'
      }
      return '#ccc'
     },
     label: {
      show: true,
      position: 'top',
      formatter: function (params) {
       //单个柱状图表头展示
       for (var i = 0, l = option.xAxis[0].data.length; i < l; i++) {
        if (option.xAxis[0].data[i] == params.name) {
         var val1 = breakCount[i] || 0;
         var val2 = checkCount[i] || 0;
         return '{color1|' + val1 + '}/{color2|' + val2 + '}';
        }
       }
      },
      rich: {
       color1: {
        color: '#c23531'
       },
       color2: {
        color: '#42a1fe'
       }
      },
      textStyle: {
       color: '#333'
      }
     }
    }
   },
   data: []
  }
  ]
 };

然后柱状图的点击事件

//点击事件
 myChart.on('click', function (params) {
  console.log(params);
  var index = params.dataIndex;
  console.log("下标:"+xxx);
  console.log("项点id:"+xxxx);
  console.log("名称:"+params.name);
  console.log("南京东机务段单位代码:"+xxxxx);
 });

以上这篇echarts 使用formatter 修改鼠标悬浮事件信息操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
简单JS代码压缩器
Oct 12 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
DWZ刷新dialog解决方法
Mar 03 Javascript
json格式的时间显示为正常年月日的方法
Sep 08 Javascript
Mac地址验证的javascript代码
Nov 09 Javascript
JavaScript作用域链示例分享
May 27 Javascript
使用jquery.qrcode生成彩色二维码实例
Aug 08 Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 Javascript
jquery遍历函数siblings()用法实例
Dec 24 Javascript
vue2.0实现音乐/视频播放进度条组件
Jun 06 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
JavaScript中this函数使用实例解析
Feb 21 Javascript
mpvue 项目初始化及实现授权登录的实现方法
Jul 20 #Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 #Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
Jul 20 #Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
Jul 20 #Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
Jul 20 #Javascript
如何实现echarts markline标签名显示自己想要的
Jul 20 #Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 #Javascript
You might like
PHP注释实例技巧
2008/10/03 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
前台js调用后台方法示例
2013/12/02 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
简单介绍Python中的struct模块
2015/04/28 Python
Python中http请求方法库汇总
2016/01/06 Python
Django日志模块logging的配置详解
2017/02/14 Python
python enumerate函数的使用方法总结
2017/11/15 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
sealed修饰符是干什么的
2012/10/23 面试题
opencv实现图像几何变换
2021/03/24 Python
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
考试作弊检讨书
2014/10/21 职场文书
离婚协议书范本2014
2014/10/27 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
pytorch中的model.eval()和BN层的使用
2021/05/22 Python