echarts 点击事件参数实现案例(11)

2017年10月22日 08:46 | 3128次浏览 作者原创 版权保护

我们上一节介绍了echarts鼠标事件的处理 ,本节主要介绍通过代码实现点击事件demo.

1,新建demo.html,引入echarts3.0的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 = {};
var option = null;
app.title = '坐标轴刻度与标签对齐';

// 处理点击事件并且跳转到相应的结束
myChart.on('click', function (params) {
  alert(params.componentType);
 if (params.componentType === 'series') {
   alert("点击事件"+params.seriesType);
       
    }
    //window.open('https://www.baidu.com/s?wd=');
});
// 处理点击事件并且跳转到相应的百度搜索页面
option = {
    color: ['#3398DB'],
    tooltip : {
        trigger: 'axis',
        axisPointer : {            // 坐标轴指示器,坐标轴触发有效
            type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
        }
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis : [
        {
            type : 'category',
            data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
            axisTick: {
                alignWithLabel: true
            }
        }
    ],
    yAxis : [
        {
            type : 'value'
        }
    ],
    series : [
        {
            name:'直接访问',
            type:'bar',
            barWidth: '60%',
            data:[10, 52, 200, 334, 390, 330, 220],
            itemStyle: {
                normal: {
                    color: function(params) {
                        // build a color map as your need.
                        var colorList = [
                          '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
                           '#FE8463','#9BCA63'
                        ];
                        return colorList[params.dataIndex]
                    }
                }
            },
            label:{ 
normal:{ 
show: true, 
position: 'top'} 
}
        }
    ]
};



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

如上述代码,其实点击实现的代码为

myChart.on('click', function (params) {
  alert(params.componentType);
 if (params.componentType === 'series') {
   alert("点击事件"+params.seriesType);
       
    }
    //window.open('https://www.baidu.com/s?wd=');
});

本案例基于柱状图实现,所以弹出的点击类型为bar

4,效果如下

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 = {};
var option = null;
app.title = '坐标轴刻度与标签对齐';

// 处理点击事件并且跳转到相应的结束
myChart.on('click', function (params) {
  alert(params.componentType);
 if (params.componentType === 'series') {
   alert("点击事件"+params.seriesType);
       
    }
    //window.open('https://www.baidu.com/s?wd=');
});
// 处理点击事件并且跳转到相应的百度搜索页面
option = {
    color: ['#3398DB'],
    tooltip : {
        trigger: 'axis',
        axisPointer : {            // 坐标轴指示器,坐标轴触发有效
            type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
        }
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis : [
        {
            type : 'category',
            data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
            axisTick: {
                alignWithLabel: true
            }
        }
    ],
    yAxis : [
        {
            type : 'value'
        }
    ],
    series : [
        {
            name:'直接访问',
            type:'bar',
            barWidth: '60%',
            data:[10, 52, 200, 334, 390, 330, 220],
            itemStyle: {
                normal: {
                    color: function(params) {
                        // build a color map as your need.
                        var colorList = [
                          '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
                           '#FE8463','#9BCA63'
                        ];
                        return colorList[params.dataIndex]
                    }
                }
            },
            label:{ 
normal:{ 
show: true, 
position: 'top'} 
}
        }
    ]
};



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

直接复制上述代码,就能运行此案例。

此文章本站原创,地址 https://www.vxzsk.com/264.html   转载请注明出处!谢谢!

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