zoukankan      html  css  js  c++  java
  • 学习进度

    Echarts树图节点数据过多时,调整容器高度自适应内容变化。

    Q(问题):Echarts树图节点数据过多时,节点值会重叠,无法正常查看

    R(原因):默认Echarts树图容器设置下,数据无论多大,都会在给定容器内展示,全显。

    S(解决):

       

    var dom = document.getElementById("container");
           var myChart = echarts.init(dom);
           myChart.on('click', function (params) {
                if (params.componentType === 'series') {
                    // 点击到了 series 上
                    if (!params.value) {
                        // 点击的节点有子分支(可点开)
                        var elesArr = Array.from(new Set(myChart._chartsViews[0]._data._graphicEls));
                        var height = 200; // 这里限制最小高
                        var currentHeight = 12 * (elesArr.length - 1) || 12; // 每项12px,调整叶子节点间的间隔大小
                        var newHeight = Math.max(currentHeight, height);
                        container.style.height = newHeight + 'px';
                        myChart.resize();
                    }
                }
            });
    Echarts 树图

     Echarts树图参数说明:

    myChart.showLoading();    //显示Loading标志; var myChart = echarts.init(document.getElementById('页面中div的id')); 
    $.get('data/asset/data/flare.json', function (data) {
        myChart.hideLoading();    //得到数据后隐藏Loading标志
     
        echarts.util.each(data.children, function (datum, index) {
            index % 2 === 0 && (datum.collapsed = true);
        });    //间隔展开子数据,animate,display,physics,scale,vis是展开的
     
        myChart.setOption(option = {
            tooltip: {    //提示框组件
                trigger: 'item',    //触发类型,默认:item(数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用)。可选:'axis':坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。'none':什么都不触发。
                triggerOn: 'mousemove'    //提示框触发的条件,默认mousemove|click(鼠标点击和移动时触发)。可选mousemove:鼠标移动时,click:鼠标点击时,none:        
            },
            series: [    //系列列表
                {
                    type: 'tree',    //树形结构
     
                    data: [data],    //上面从flare.json中得到的数据
     
                    top: '1%',       //距离上
                    left: '7%',      //
                    bottom: '1%',    //
                    right: '20%',    //右的距离
     
                    symbolSize: 7,   //标记的大小,就是那个小圆圈,默认7
     
                    label: {         //每个节点所对应的标签的样式
                        normal: {
                            position: 'left',       //标签的位置
                            verticalAlign: 'middle',//文字垂直对齐方式,默认自动。可选:top,middle,bottom
                            align: 'right',         //文字水平对齐方式,默认自动。可选:top,center,bottom
                            fontSize: 9             //标签文字大小
                        }
                    },
     
                    leaves: {    //叶子节点的特殊配置,如上面的树图示例中,叶子节点和非叶子节点的标签位置不同
                        label: {
                            normal: {
                                position: 'right',
                                verticalAlign: 'middle',
                                align: 'left'
                            }
                        }
                    },
     
                    expandAndCollapse: true,    //子树折叠和展开的交互,默认打开
                    animationDuration: 550,     //初始动画的时长,支持回调函数,默认1000
                    animationDurationUpdate: 750//数据更新动画的时长,默认300
                }
            ]
        });
    });

    更多参考:echarts 树图

  • 相关阅读:
    js中图片上传,多次上传同一张不生效
    mysql统计一年12月的数据
    jquery.qrcode.js 生成二维码并支持中文的方法
    layui 的 GitHub 及 Gitee (码云) 仓库
    枚举应用demo
    第十二节 线性回归:波士顿房价预测
    第十二节 gevent多任务
    第十一节 yield实现多任务
    第十节 next和send取生成器的值
    第九节 生成器
  • 原文地址:https://www.cnblogs.com/zhao-teng-ass/p/12437264.html
Copyright © 2011-2022 走看看