zoukankan      html  css  js  c++  java
  • ECharts 高度宽度自适应(转载)

    最近在写一个地图类的应用,用的是echarts的图表,然而一上来就一脸懵逼,如果父级容器的height/width属性设置为百分比的形式,那么echarts就会warning,且不能正常的生成图表。所以div容器的高度宽度必须指定为px,这设计不知道是为啥。 
    google到的解决方案如下

    • 添加window.onresize=myCharts.resize在setOption之后

    我添加后图表的高度被压缩到了min-height,很奇怪,于是自己采用了如下解决方案,直接贴代码了。

    var worldMapContainer = document.getElementById('WorldMap');
    
    //用于使chart自适应高度和宽度,通过窗体高宽计算容器高宽
    var resizeWorldMapContainer = function () {
        worldMapContainer.style.width = window.innerWidth+'px';
        worldMapContainer.style.height = window.innerHeight+'px';
    };
    //设置容器高宽
    resizeWorldMapContainer();
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(worldMapContainer);
    
    // 指定图表的配置项和数据
    var option = {
        title: {
            text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
            data:['销量'],
            height: worldMapContainer.style.height,
             worldMapContainer.style.width
        },
        xAxis: {
            data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
        },
        yAxis: {},
        series: [{
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
        }]
    };
    
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
    
    //用于使chart自适应高度和宽度
    window.onresize = function () {
        //重置容器高宽
        resizeWorldMapContainer();
        myChart.resize();
    };

    此时,worldMapContainer的高宽已经无所谓了,因为我们已经在js中设定了div容器高宽。 
    这个方法可以在使ECharts在高度和宽度上均自适应,如若遇到什么坑,之后再补充。

    • 如果是需要图表跟随容器自适应的话,将上述window.innerWidthwindow.innerHeight替换为容器元素的container.clientWidthcontainer.clientHeight即可。其根本原理就是通过JavaScript来刷新图表宽高而非直接css自适应(因为ECharts不支持)

    来源:http://blog.csdn.net/u012043416/article/details/51912011

  • 相关阅读:
    数据转换类型和算数运算符
    语言基础+数据类型
    JS(一)Prototype的使用
    Jquery EasyUI简介和数据的增删改查
    http简介
    《JavaScript语言精粹》笔记
    wcf
    简单工厂模式与抽象工厂模式
    <转载>C#中的特性(Attributes)
    <转载>C#IEnumerable和IEnumerator 详解
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/8427534.html
Copyright © 2011-2022 走看看