全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

vue.js+Echarts开发图表放大缩小功能实例

最近使用echarts来开发某系统的图表功能,先申明我以前用的ext.js,ext.js对图表有自己的一套组件,用起来也很方便。但是由于ext.js过于臃肿,公司决定使用echarts来开发图表功能。当我们使用的时候才悲催的发现,echart绘制之后,不能随着容器div的大小而变化。而我们所开发的图表是需要有放大缩小功能,于是在网上找了很久,也没有找到合适的答案,大部分是通过监听窗口大小改变事件来设置,然而并不是我们所需要的。于是自己用了一点点时间,了解了为何echarts不能重新渲染,原来是在容器div里面设置了标记,每个div容器只能被渲染一次。知道原因之后,就容易了,就写了一个简单的demo。希望可以帮到有需要的同学。

html代码:

<!doctype html>
<html>
<head>
  <title>vue+chart</title>
  <script src="echarts.min.js"></script>
  <script src="vue.js"></script>
  <style>
    .button{
      float:left;
      width:150px;
      height:60px;
      color:#CC3333;
      border:2px solid #CC3333;
      background-color:#3399CC;
      line-height:60px;
      text-align:center;
      font-size:36px;
    }
    .button:hover{
      float:left;
      width:150px;
      height:60px;
      color:#3399CC;
      border:2px solid #3399CC;
      background-color:#CC3333;
      line-height:60px;
      text-align:center;
      font-size:36px;
    }
  
    .chart{
      margin:0 auto;
    }
    #but{
      width:310px;
      margin:0 auto;
    }
  </style>

</head>

<body>
  <div id="app">
    <div id="panel">
      <div class="chart" id="main" style="width:300px;height:300px"></div>
    </div>
    <div id="but">
      <div id="add" class="button" @click="add">放大</div>
      <div id="reduce" class="button" @click="reduce">缩小</div>
    </div>
  </div>
</body>
</html>

js代码:

      var vm=new Vue({
        el:"#app",
        data:{
          size:300,
        },
         computed: {
          style: function () {
           return "width:"+this.width+"px;height:"+this.height+"px"
          }
         },
         methods:{
            add:function(){
              if(this.size<900){
                this.size=this.size+50;}
                else{
                this.size=900;
                }

              },
            reduce:function(){
              if(this.size>300){
              this.size=this.size-50;}
              else{
              this.size=300;
              }
            }
         }
      })
    var myChart = echarts.init(document.getElementById('main'));
    var option = {
      title: {
        text: 'ECharts 入门'
      },
      tooltip: {},
      legend: {
        data:['销量']
      },
      xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
      },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
      }]
    };
    myChart.setOption(option);
      // 基于准备好的dom,初始化echarts实例
    vm.$watch("size",function(newVal, oldVal){
      var dom=document.getElementById('panel')
      dom.innerHTML='<div class="chart" id="main" style="width:'+newVal+'px;height:'+newVal+'px"></div>';
      var myChart = echarts.init(document.getElementById('main'));
      myChart.setOption(option);
    })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue.js  # 图表  # vue2  # Echarts  # vue3写echarts不能根据屏幕大小缩的解决办法  # 自己的  # 是在  # 很久  # 也很  # 用了  # 找了  # 写了  # 当我们  # 没有找到  # 所需要  # 大家多多  # 小而  # 在网上  # 雪纺  # 我以前  # button  # left  # width  # float  # script 


相关文章: 如何在宝塔面板中修改默认建站目录?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  如何选择靠谱的建站公司加盟品牌?  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站之星logo尺寸如何设置最合适?  网站微信制作软件,如何制作微信链接?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  Swift中swift中的switch 语句  西安大型网站制作公司,西安招聘网站最好的是哪个?  如何用已有域名快速搭建网站?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  网站app免费制作软件,能免费看各大网站视频的手机app?  宝塔Windows建站如何避免显示默认IIS页面?  网站制作壁纸教程视频,电脑壁纸网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  建站主机选购指南:核心配置优化与品牌推荐方案  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何通过商城自助建站源码实现零基础高效建站?  如何用美橙互联一键搭建多站合一网站?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  如何在云服务器上快速搭建个人网站?  家庭服务器如何搭建个人网站?  高端建站如何打造兼具美学与转化的品牌官网?  建站主机无法访问?如何排查域名与服务器问题  南平网站制作公司,2025年南平市事业单位报名时间?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  Swift中循环语句中的转移语句 break 和 continue  大学网站设计制作软件有哪些,如何将网站制作成自己app?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  C++中引用和指针有什么区别?(代码说明)  制作网页的网站有哪些,电脑上怎么做网页?  如何快速生成专业多端适配建站电话?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  潮流网站制作头像软件下载,适合母子的网名有哪些?  如何在云主机快速搭建网站站点?  如何零基础开发自助建站系统?完整教程解析  网页设计网站制作软件,microsoft office哪个可以创建网页?  宝塔面板如何快速创建新站点?  ui设计制作网站有哪些,手机UI设计网址吗?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  网站制作网站,深圳做网站哪家比较好?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何通过.red域名打造高辨识度品牌网站?  建站之星免费模板:自助建站系统与智能响应式一键生成  如何快速选择适合个人网站的云服务器配置?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  太平洋网站制作公司,网络用语太平洋是什么意思?  如何通过西部建站助手安装IIS服务器? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。