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 相关文章推荐
由浅到深了解JavaScript类
Sep 08 Javascript
jQuery ready函数滥用分析
Feb 16 Javascript
基于jquery的无限级联下拉框js插件
Oct 29 Javascript
JS+JSP checkBox 全选具体实现
Jan 02 Javascript
JavaScript日期时间格式化函数分享
May 05 Javascript
javascript三元运算符用法实例
Apr 16 Javascript
JS本地刷新返回上一页代码
Jul 25 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
小程序调用微信支付的方法
Sep 26 Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 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操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
Vuex简单入门
2017/04/19 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
python缩进区别分析
2014/02/15 Python
Python中的默认参数详解
2015/06/24 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
python学习开发mock接口
2019/04/28 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
python处理写入数据代码讲解
2020/10/22 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
企业厂长岗位职责
2013/12/17 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
社区工作者思想汇报
2014/01/13 职场文书
春节慰问信范文
2015/02/15 职场文书
2015年组织部工作总结
2015/04/03 职场文书
音乐课外活动总结
2015/05/09 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
《窃读记》教学反思
2016/02/18 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
配置nginx 重定向到系统维护页面
2021/06/08 Servers
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript