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 相关文章推荐
jquery文字上下滚动的实现方法
Mar 22 Javascript
javascript使用数组的push方法完成快速排序
Sep 15 Javascript
触屏中的JavaScript事件分析
Feb 06 Javascript
使用angularjs创建简单表格
Jan 21 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
JavaScript 身份证号有效验证详解及实例代码
Oct 20 Javascript
功能强大的jquery.validate表单验证插件
Nov 07 Javascript
JavaScript实现实时更新系统时间的实例代码
Apr 04 Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 Javascript
浅谈vue-router2路由参数注意的问题
Nov 08 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
Dec 29 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
Sep 03 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
如何开始收听短波广播
2021/03/01 无线电
php格式化工具Beautify PHP小小BUG
2008/04/24 PHP
php编程每天必学之表单验证
2016/03/01 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
js不是基础的基础
2006/12/24 Javascript
json跟xml的对比分析
2008/06/10 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
深入浅析Python传值与传址
2018/07/10 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
浅析NumPy 切片和索引
2020/09/02 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
任命书范本大全
2014/06/06 职场文书
死亡赔偿协议书
2015/01/28 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL