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 相关文章推荐
JavaScript 学习历程和心得分享
Dec 12 Javascript
jQuery学习之prop和attr的区别示例介绍
Nov 15 Javascript
一个JavaScript防止表单重复提交的实例
Oct 21 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
Nov 25 Javascript
纯js的右下角弹窗实例
Mar 12 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
Aug 01 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
vue移动端弹框组件的实例
Sep 25 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
Vue使用Proxy监听所有接口状态的方法实现
Jun 07 Javascript
Vue 中可以定义组件模版的几种方式
Aug 06 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 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
杏林同学录(三)
2006/10/09 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
重定向实现代码
2006/11/20 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python 3 判断2个字典相同
2019/08/06 Python
keras 多gpu并行运行案例
2020/06/10 Python
python redis存入字典序列化存储教程
2020/07/16 Python
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
Internal修饰符有什么含义
2013/07/10 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
资深地理教师自我评价
2013/09/21 职场文书
制药工程专业应届生求职信
2013/09/24 职场文书
《在家里》教后反思
2014/03/01 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
神农溪导游词
2015/02/11 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
员工工作心得体会
2019/05/07 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技