echarts 饼图click点击事件

2018年06月27日 09:08 | 7027次浏览 作者原创 版权保护

ECharts支持常规的鼠标事件类型 包括'click'、'dblclick'、'mousedown'、'mousemove'、'mouseup'、'mouseover'、'mouseout' 事件。大家根据需求替换就行。--V型知识库原创www.vxzsk.com

本章节重点介绍echarts饼图点击事件,实现步骤如下:

echarts饼图点击事件实例

1,新建静态页面demo.html,并引入echarts的js库,在这里我们引入的是网络地址

<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts-all-3.js"></script>

2,饼图容器html代码,只需一行html代码

<div id="container" style="height: 500px"></div>

饼图容器高度为500px,宽度默认,并且div的id号为container,在接下来初始化环形图的时候会用到。

3,javascript实现代码

 <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};

// 处理点击事件并且跳转到相应的开始  
myChart.on('click', function (params) {
     alert(params.name);
  alert(params.componentType);
 if (params.componentType === 'series') {
   alert("点击事件"+params.seriesType);
        
    }
    //window.open('https://www.baidu.com/s?wd=');
});
// // 处理点击事件并且跳转到相应的结束

var option = null;
option = {
    title : {
        text: 'V型知识库用户访问来源',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 'left',
        data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
    },
    series : [
        {
            name: '访问来源',
            type: 'pie',
            radius : '55%',
            center: ['50%', '60%'],
            data:[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:234, name:'联盟广告'},
                {value:135, name:'视频广告'},
                {value:1548, name:'搜索引擎'}
            ],
            
            itemStyle: {
                normal: {label:{  
                show:true,  
                formatter:'{b} : {c} ({d}%)'  
            },  
            labelLine:{show:true}},  
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};

 
 
 
if (option && typeof option === "object") {
    myChart.setOption(option, true);
}
       </script>

注意上述js代码中的点击事件实现

// 处理点击事件并且跳转到相应的开始  
myChart.on('click', function (params) {
     alert(params.name);
  alert(params.componentType);
 if (params.componentType === 'series') {
   alert("点击事件"+params.seriesType);
        
    }
    //window.open('https://www.baidu.com/s?wd=');
});
// // 处理点击事件并且跳转到相应的结束

你也可以把上述点击事件的click类型换成mousedown等类型,此代码实现了点击部分弹出此部分的name属性值,请看下面效果

4,用浏览器打开demo.html,效果如下

如图所示,点击饼图,name属性值已经弹出来了。

5,demo.html完整代码

<!DOCTYPE html>
<head>
       <meta charset="utf-8">
   </head>
   <body >
       <div id="container" style="height: 500px"></div>
        
       <!-- V型知识库 www.vxzsk.com 原创 -->
        
       <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts-all-3.js"></script>
        
       <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};

// 处理点击事件并且跳转到相应的开始  
myChart.on('click', function (params) {
     alert(params.name);
  alert(params.componentType);
 if (params.componentType === 'series') {
   alert("点击事件"+params.seriesType);
        
    }
    //window.open('https://www.baidu.com/s?wd=');
});
// // 处理点击事件并且跳转到相应的结束

var option = null;
option = {
    title : {
        text: 'V型知识库用户访问来源',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 'left',
        data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
    },
    series : [
        {
            name: '访问来源',
            type: 'pie',
            radius : '55%',
            center: ['50%', '60%'],
            data:[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:234, name:'联盟广告'},
                {value:135, name:'视频广告'},
                {value:1548, name:'搜索引擎'}
            ],
            
            itemStyle: {
                normal: {label:{  
                show:true,  
                formatter:'{b} : {c} ({d}%)'  
            },  
            labelLine:{show:true}},  
                emphasis: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};

 
 
 
if (option && typeof option === "object") {
    myChart.setOption(option, true);
}
       </script>
   </body>
</html>



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/1117.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程