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匿名函数实例分析
Nov 26 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
Dec 07 Javascript
vue addRoutes实现动态权限路由菜单的示例
May 15 Javascript
JS实现的简单tab切换功能完整示例
Jun 20 Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 Javascript
微信小程序左滑删除实现代码实例
Sep 16 Javascript
vue实现弹幕功能
Oct 25 Javascript
微信小程序select下拉框实现源码
Nov 08 Javascript
微信小程序wxs实现吸顶效果
Jan 08 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 Javascript
vue实现tab栏点击高亮效果
Aug 19 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中邮箱地址正则表达式实现与详解
2012/04/24 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
jQuery 移除事件的方法
2020/06/20 jQuery
微信小程序自定义胶囊样式
2020/12/27 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python中的super()方法使用简介
2015/08/14 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
python实现求特征选择的信息增益
2018/12/18 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
Python函数参数分类原理详解
2020/05/28 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
请介绍一下WSDL的文档结构
2013/03/17 面试题
师德师风个人反思
2014/04/28 职场文书
单位工作证明书格式
2014/10/04 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript
mysql sock文件存储了什么信息
2022/07/15 MySQL