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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
JavaScript几种形式的树结构菜单
May 10 Javascript
轻量级的原生js日历插件calendar.js使用指南
Apr 28 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
AngularJS删除路由中的#符号的方法
Sep 20 Javascript
jQuery使用方法
Feb 04 Javascript
JS中Swiper的使用和轮播图效果
Aug 11 Javascript
浅谈react 同构之样式直出
Nov 07 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
Oct 26 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 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
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
Javascript中的apply()方法浅析
2015/03/15 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
利用Python学习RabbitMQ消息队列
2015/11/30 Python
python实现简单登陆系统
2018/10/18 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
英国办公用品商店:Office Outlet
2018/04/04 全球购物
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android