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 获取页面元素的位置的代码
Sep 25 Javascript
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
javascript 拖动表格行实现代码
May 05 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
微信中一些常用的js方法汇总
Mar 12 Javascript
JavaScript获取ul中li个数的方法
Feb 13 Javascript
js时间查询插件使用详解
Apr 07 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
如何在vue里添加好看的lottie动画
Aug 02 Javascript
基于canvasJS在PHP中制作动态图表
May 30 Javascript
解决vue 退出动画无效的问题
Aug 09 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
用来解析.htpasswd文件的PHP类
2012/09/05 PHP
PHP错误机制知识汇总
2016/03/24 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
索趣科技的答案
2007/02/07 Javascript
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python实现图片转字符小工具
2019/04/30 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
python 初始化一个定长的数组实例
2019/12/02 Python
keras中的backend.clip用法
2020/05/22 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
Java语言程序设计测试题选择题部分
2014/04/03 面试题
母亲节演讲稿范文
2014/01/02 职场文书
迟到检讨书300字
2014/02/14 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
资料员岗位职责范本
2015/04/13 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
演讲比赛主持词
2015/06/29 职场文书
交通安全主题班会
2015/08/12 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
Python django中如何使用restful框架
2021/06/23 Python