页面自适应+Echarts自适应

1,839 阅读1分钟

页面自适应

首先先设置

html{
    width:100vw;
    height:100vh;
}

然后相应的div

<div class="contenA"  style="with:10vw;height:10vh">
   <div class="contenB" style="with:9vw;height:9vh">
    放echarts
</div>
</div>

这样紫,随着视口大小的变化,相应的盒子也就跟着自适应了。

接着,echarts。

(1)上面那种写法,echarts已经能自适应,不过不是实时的,每次刷新一次,才能自适应。

(2)echarts根据视口自适应,实时的

 setTimeout(function (){ window.onresize = function () { myChart.resize(); } },200);
//onresize 事件会在窗口或框架被调整大小时发生。

上面代码的意思是,如果myChart.resize刷新,window.onresize跟着刷新

echarts中第一个是option。echats各种信息就是在这里面配置的

option的legend

option的tooltip  (鼠标放上去有提示框)

看文档,或者blog.csdn.net/dreamsup/ar…

已经有详细说明

option的dataset

也可以是常见的json形式

。下面给个例子,动态赋值渲染。

data:that.serie

option的series中itemStyle ( 设置饼型图的数据)

 xAxis : //X轴数据   
 yAxis : //Y轴数据   
 series : //驱动图表数据

绘制echart直角坐标系的  grid

//echats饼型图和柱形图联动

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.2.1/echarts.min.js"></script></head><body>    <div style="border:2px solid #666;width:50vw;height:50vh;float:left;" >        <div style="width: 50vw;height: 50vh;" id="chartmain"></div>    </div></body><style>    html{        width: 100vw;        height: 100vh;        }</style><script type="text/javascript">                setTimeout(function () {option = {         //option  图表选项,包含图表实例任何可配置选项: 公共选项 , 组件选项 , 数据选项    legend: {},        tooltip: {        trigger: 'axis',        showContent: false    },    dataset: {        source: [            ['product', '2012', '2013', '2014', '2015', '2016', '2017'],            ['Matcha Latte', 41.1, 30.4, 65.1, 53.3, 83.8, 98.7],            ['Milk Tea', 86.5, 92.1, 85.7, 83.1, 73.4, 55.1],            ['Cheese Cocoa', 24.1, 67.2, 79.5, 86.4, 65.2, 82.5],            ['Walnut Brownie', 55.2, 67.1, 69.2, 72.4, 53.9, 39.1]        ]    },    xAxis: {type: 'category'},    yAxis: {gridIndex: 0},    grid: {top: '45%'},    series: [        //条形图        {type: 'line', smooth: true, seriesLayoutBy: 'row'},        {type: 'line', smooth: true, seriesLayoutBy: 'row'},        {type: 'line', smooth: true, seriesLayoutBy: 'row'},        {type: 'line', smooth: true, seriesLayoutBy: 'row'},        {            //饼型图            type: 'pie',            id: 'pie',            radius: '30%',            center: ['50%', '25%'],  //跳转饼型图的位置            label: {                               // 饼图、雷达图 : a(系列名称),b(数据项名称),c(数值), d(百分比)                formatter: '{b}: {@2012} ({d}%)'  //@的作用是显示2012的数据,如果没有@,直接显示2012,当成字符串            },            encode: {                itemName: 'product',                value: '2012',                tooltip: '2012'            }        }    ]};   //获取dom容器   var myChart = echarts.init(document.getElementById('chartmain'));                // 使用刚指定的配置项和数据显示图表。       myChart.setOption(option);    //myChart.on   就是跟着事件一起改变   myChart.on('updateAxisPointer', function (event) {     var xAxisInfo = event.axesInfo[0];     if (xAxisInfo) {        var dimension = xAxisInfo.value + 1;        myChart.setOption({            series: {                id: 'pie',                label: {                    formatter: '{b}: {@[' + dimension + ']} ({d}%)'                },                encode: {                    value: dimension,                    tooltip: dimension                }            }        });    }});        setTimeout(function (){ window.onresize = function () { myChart.resize(); } },200);});                 </script><style>html{    width: 100vw;    height: 100vh;    font-size: 62.5%;}</style></html>