Echarts 餅狀圖實現自動高亮扇面

在網上找了很多案例,基本上都不太符合自己想要的,這裏想要餅狀圖中的每一個區域在定時器的作用下,每隔幾秒高亮其中一個扇面,代碼思路如下:

1、引用echarts.min.js版本號以3.x.爲例

# 餅狀圖容器
<div id="twoEchart" style="width: 210px;height: 100%"></div>

2、餅狀圖詳情實例

var myChart1 = echarts.init(document.getElementById('twoEchart'));

var option1 = {
            color: ['#1e33ff', '#008fff', '#552de1', '#4f1577', '#50befe', '#c95be9', '#1221b4'],
            tooltip: {
                trigger: 'item',
                backgroundColor: 'none',
                textStyle: {
                    fontSize: 12,
                    fontFamily: 'Microsoft YaHei'
                },
                position: function (point, params, dom, rect, size) {
                    $(dom).html('<div class="tip">\n' +
                        '        <span class="name">' + params.name + '</span>\n' +
                        '        <div class="num">' + params.value + '<span class="name">家</span></div>\n' +
                        '    </div>');

                    return 'inside'
                }
            },
            series: [
                {
                    type: 'pie',
                    radius: '80%',
                    center: ['50%', '50%'],
                    label: {
                        normal: {
                            show: false
                        }
                    },
                    hoverOffset: 20,
                    startAngle: 90,
                    data: [
                        {value: 335, name: '小型企業'},
                        {value: 310, name: '一般工業企業'},
                        {value: 234, name: '第三產業'},
                        {value: 135, name: '建築施工'},
                        {value: 1548, name: '畜禽養殖業'},
                        {value: 580, name: '污水處理廠'},
                        {value: 400, name: '固廢處置單位'}
                    ]
                }
            ]
        };
myChart1.setOption(option1);

 var app = {
     currentIndex: -1
 };

 setInterval(function () {
     var dataLen = option1.series[0].data.length;
     // 取消之前高亮的圖形
     myChart1.dispatchAction({
         type: 'downplay',
         seriesIndex: 0,
         dataIndex: app.currentIndex
     });
     app.currentIndex = (app.currentIndex + 1) % dataLen;
     // 高亮當前圖形
     myChart1.dispatchAction({
         type: 'highlight',
         seriesIndex: 0,
         dataIndex: app.currentIndex
     });
     // 顯示 tooltip
     myChart1.dispatchAction({
         type: 'showTip',
         seriesIndex: 0,
         dataIndex: app.currentIndex
     });
 }, 3000);

3、echarts中tooltip的dom樣式文件

 .tip{
    width: 100%;
    height: 100%;
    display:flex;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
  }
.name{
     font-size: 12px;
   }
   .num{
     font-size: 18px;
   }

4、效果圖如下

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章