当前位置: 移动技术网 > IT编程>脚本编程>vue.js > 在vue中实现echarts随窗体变化

在vue中实现echarts随窗体变化

2020年07月28日  | 移动技术网IT编程  | 我要评论

<div id="mychart" :style="{width: '100%', height: '345px'}"></div>
<script> export default {
mounted(){
    this.drawline();
  },
  methods: {
    drawline(){
    var mychartcontainer = document.getelementbyid('mychart');      //用于使chart自适应宽度,通过窗体宽计算容器高宽
    var resizemychartcontainer = function(){
     mychartcontainer.style.width=(document.body.clientwidth-75)+'px'
    }     //设置容器高宽
    resizemychartcontainer()
    // 基于准备好的dom,初始化echarts实例
    var mychart = this.$echarts.init(mychartcontainer)
     
    // 绘制图表
    mychart.setoption({
      title: { text: '启动次数' },
      tooltip: {},
      xaxis: {
        type: 'category',
        data: ['2019-02-15', '2019-02-16', '2019-02-17', '2019-02-18', '2019-02-19', '2019-02-20', '2019-02-21']
      },
      yaxis: {
         type:'value'
      },
      series: [{
        type: 'line',
        data: [0,0, 0, 7, 0, 0,12],
        smooth:true,
        symbol: 'circle', 
        symbolsize: 6, 
        itemstyle:{ 
          normal:{ 
             
            color:'#fc8a0f', 
            linestyle:{ 
              color:'#ff9c35' 
                } 
              } 
            }
      }],
    });
    window.onresize=function(){
     resizemychartcontainer();
      mychart.resize();
    }
   }
  }}</script>

补充知识:echarts 图表大小随窗口变动而自适应变动(无需刷新浏览器调整)

问题提出:

使用echars做完图表之后,需要根据浏览器窗口的缩放做自适应效果。

原因分析及解决方案:

echars的图标实例事实上并没有主动的去绑定resize()事件,就是说显示区域的大小改变内部并不知道,当你需要去做一些自适应的效果的时候,需要主动绑定这个时间才能达到自使用的效果,常见的如window.onresize = mychart.resize()

示例:

var map5 = echarts.init(document.getelementbyid('map5'));
  var option5 = {
    backgroundcolor: '#def1f9',
    color: ['#c23531', '#1875ff'],
    title: {
      left: 10,
      top: 10,
      text: 'bill charts for the past year'
    },
    // color: ['#1875ff', '#1fe6ab', '#eee119', '#ff3074', '#6f99d9'],
    legend: {
      top: 30,
      right: 30
    },
    tooltip: {},
 
    xaxis: {type: 'category'},
    yaxis: {},
    series: [
      {type: 'bar'},
      {type: 'bar'}
    ]
  }
  map5.setoption(option5);
 
  window.onresize = function () {
    settimeout(function () { 
      map1.resize()
      map2.resize()
      map3.resize()
      map4.resize()
      map5.resize()
    },10)
  }

重点:

window.onresize = function () {
   map1.resize() ; // 如果有多个图标变动,可写多个
}

以上这篇在vue中实现echarts随窗体变化就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网