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


Posted in Javascript onJune 09, 2017

最近使用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+Echarts开发图表放大缩小功能实例

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

Javascript 相关文章推荐
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
Apr 02 Javascript
node.js中的buffer.length方法使用说明
Dec 14 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
canvas 绘制圆形时钟
Feb 22 Javascript
第一个Vue插件从封装到发布
Nov 22 Javascript
Bootstrap实现可折叠分组侧边导航菜单
Mar 07 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
Jun 07 Javascript
js微信分享接口调用详解
Jul 23 Javascript
使用JS实现动态时钟
Mar 12 Javascript
Vue 使用typescript如何优雅的调用swagger API
Sep 01 Javascript
vue2 中如何实现动态表单增删改查实例
Jun 09 #Javascript
JS创建Tag标签的方法详解
Jun 09 #Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
Jun 09 #Javascript
JS实现的随机排序功能算法示例
Jun 09 #Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 #jQuery
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 #jQuery
基于代数方程库Algebra.js解二元一次方程功能示例
Jun 09 #Javascript
You might like
php的计数器程序
2006/10/09 PHP
php中hashtable实现示例分享
2014/02/13 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
关于JS字符串函数String.replace()
2013/04/07 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
vue组件学习教程
2017/09/09 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
python字典快速保存于读取的方法
2018/03/23 Python
python调用支付宝支付接口流程
2019/08/15 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
DBA的职责都有哪些
2012/05/16 面试题
入党转预备思想汇报
2014/01/07 职场文书
客户表扬信范文
2014/01/10 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
高二物理教学反思
2014/02/08 职场文书
满月酒主持词
2014/03/27 职场文书
销售目标责任书
2014/07/23 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android