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

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 +"&nbsp"+data.mustMod[i].TOTAL +"("+data.mustMod[i].precentAcccess+"%)" + "<br/> " ;
            }
            //alert(data.lessMod[data.lessMod.length-1].totalAccess);
            str += "总数:"+ data.must.totalAccess + "&nbsp" +"("+ data.must.totalPrecent+"%)" + "<br/> ";
            }
          if(ticket == 'item_操作概况_1'){
            for(var i in data.moreMod){
              str += "模块:" + data.moreMod[i].MODULE_NAME +"&nbsp"+data.moreMod[i].TOTAL +"("+data.moreMod[i].precentAcccess+"%)" + "<br/> " ;
        }
            //alert(data.lessMod[data.lessMod.length-1].totalAccess);
            str += "总数:"+ data.more.totalAccess + "&nbsp" +"("+ data.more.totalPrecent+"%)" + "<br/> ";
            }
          if(ticket == 'item_操作概况_3'){
            for(var i in data.lessMod){
              str += "模块:" + data.lessMod[i].MODULE_NAME +"&nbsp"+data.lessMod[i].TOTAL +"("+data.lessMod[i].precentAcccess+"%)" + "<br/> " ;
            }
            //alert(data.lessMod[data.lessMod.length-1].totalAccess);
            str += "总数:"+ data.less.totalAccess + "&nbsp" +"("+ data.less.totalPrecent+"%)" + "<br/> ";

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

先上效果图

1

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 修改鼠标悬浮事件信息操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Vue + Echarts 使用markLine标线(precision精度问题)

    在VUE实例中使用Echarts 安装echarts依赖: npm install echarts -s 编写代码: 引入echarts对象: 鉴于准备工作中已经通过npm安装了echarts依赖,所以可以直接在vue文件中使用代码import echarts from "echarts"引入echarts对象: <script> import echarts from 'echarts/lib/echarts' </script> 注意:只引入了echarts

  • 解决echarts echarts数据动态更新和dataZoom被重置问题

    1.全局绑定滚轮事件,获得dataZoom最新的位置: myChart.on('dataZoom',function(event){ if(event.batch){ start=event.batch[0].start; end=event.batch[0].end; }else{ start=event.start; end=event.end; }; }); 2.把最新的start和end赋值给要更新的option window.setInterval(function () { num=

  • 在vue中使用Echarts利用watch做动态数据渲染操作

    依旧直接上代码- 首先安装引入Echarts,我是直接把Echarts挂到VUE全局变量上了 //引入echarts import Vue from 'vue'; import echarts from 'echarts'; Vue.prototype.$echarts = echarts; <template> <div class="demo-container"> <div ref="chart_wrap" class="

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

    formatter 一般用于格式化鼠标悬浮时间的信息,如果你的数据是JSON数组格式,那么不必和我这样一一判断扇形图的 ticket 值,使用 formatter 的 callback 时间即可自行对应 formatter: function (params, ticket, callback) { console.log(params); console.log(ticket); var str = '明细:<br/>'; if(ticket == 'item_操作概况_0'){ for(v

  • Vue实现鼠标悬浮切换图片src

    本文实例为大家分享了Vue实现鼠标悬浮切换图片src的具体代码,供大家参考,具体内容如下 需求: 1. 鼠标悬浮到图示按钮上面,图片切换成灰色按钮2. 鼠标离开图示按钮,图片切换成回白色按钮 Html部分: <!-- 如果此处的两个鼠标事件不生效,可以在mouseenter后面添加.native后缀 --> <div class="left-btn"      @click="saveTemplate()"      @mouseenter=&qu

  • 基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层

    很多网站,当鼠标悬浮在一个元素上的时候能够弹出一个信息说明层,并且此层能够跟随鼠标移动,同时弹出的层带有箭头,此箭头指向鼠标悬浮的元素,下面就通过实例代码简单介绍一下如何实现此效果. 代码实例如下: <!DOCTYPE html> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta nam

  • Vue实现鼠标悬浮隐藏与显示图片效果@mouseenter和@mouseleave事件详解

    目录 前言 图片说明 功能实现 这里需要注意一点 mouseover 和 mouseenter 的区别 总结 前言 前端vue 有个功能是鼠标移动到指定item上显示出来一个编辑和删除的图标 鼠标悬停在列表那么需要有悬浮显示的列表编辑和删除icon 文字不好描述,因为是web端录屏也比较麻烦 这里用截图说明 图片说明 功能实现 之前没做过这种效果,问了一下我的组长-豪哥 他告诉我很简单,利用vue的@mouseenter 和 @mouseleave事件就可以完美解决 本着这个思路,我去寻求答案,

  • Vue在echarts tooltip中添加点击事件案例详解

    目录 需求 解决方法 1.设置tooltip 2.定义hookToolTip变量 3.在methods中添加方法 4.完整代码 需求 需要在echarts tooltip点击学校的名称,跳转到详情页面:项目是从上海市---> 某个区----> 具体的学校(在最后一级的tooltip中绑定一个点击事件)  项目是用vue和echarts实现的,echarts是新版本(^5.0.2),并不能把点击事件绑定在window上 解决方法 1.设置tooltip enterable: true, //允许

  • Vue.js鼠标悬浮更换图片功能

    最近自己做的项目中设计师要求分类栏中鼠标悬停更换图片,大致实现出来的效果就是这样: 这个在jQuery中是个很简单的事,但是在vue中我还是第一次实现. 首先将所有的选中后图片都覆盖到没选中图片上 html代码如下 <ul> <li> <a href=""> <img src="../../../img/goods/study.png" alt="学习"> <img class="h

  • html中鼠标滚轮事件onmousewheel的处理方法

    滚轮事件是不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件使用mousewheel,下面我来给大家具体介绍. Firefox使用DOMMouseScroll,其他的浏览器使用mousewheel.滚动事件触发时Firefox使用detail属性捕捉滚轮信息,其他的浏览器使用wheelDelta.不知道为何在该问题上其他厂商和微软的如此一致.Firefox可

  • jquery实现鼠标悬浮停止轮播特效

    本文实例讲述了jquery实现鼠标悬浮停止轮播特效代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: 一.主体程序 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>轮播图①(手动点击轮播)</title> <link type="text/css" rel="stylesheet&

  • 自定义一个jquery插件[鼠标悬浮时候 出现说明label]

    最近在学习jquery,看了几天,决定做个小东西练练手.入门级的可以看看. 先看下面这个小东西有什么功能,有模有用. 功能:当你鼠标悬浮在你的html元素上面的时候,它会显示一个help说明性的label. 效果图: 原始: 当你的鼠标悬浮在'单击我吧1'时: 当你的鼠标悬浮在'textbox'时: 看了效果图,若是有兴趣的话,仔细看看代码吧,代码有注释 html 代码: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup=&quo

  • jquery实现鼠标悬浮弹出气泡提示框

    jquery鼠标悬浮弹出气泡提示框,供大家参考,具体内容如下 居中的图片 代码 我在网上找了很多例子都是单独的一个,所以我修改了jquery的一点代码,让它可以在一个页面上多次使用,原文的地址我没找到,相信我这个会更好一点. //别忘了导入js文件! <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>气泡显示</title> <script

随机推荐