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 相关文章推荐
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
js计算两个时间之间天数差的实例代码
Nov 19 Javascript
js setTimeout()函数介绍及应用以倒计时为例
Dec 12 Javascript
Node.js中HTTP模块与事件模块详解
Nov 14 Javascript
javascript白色简洁计算器
May 04 Javascript
Bootstrap源码解读下拉菜单(4)
Dec 23 Javascript
微信小程序开发(二)图片上传+服务端接收详解
Jan 11 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 Javascript
浅谈vuepress 踩坑记
Apr 18 Javascript
vue如何引入sass全局变量
Jun 28 Javascript
浅谈目前可以使用ES10的5个新特性
Jun 25 Javascript
原生js实现轮播图特效
May 04 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
PHP多进程编程实例详解
2017/07/19 PHP
Open and Print a Word Document
2007/06/15 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
javascript数组去掉重复
2011/05/12 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
关于Python的一些学习总结
2018/05/25 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
Python 私有化操作实例分析
2019/11/21 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
python爬虫要用到的库总结
2020/07/28 Python
Python实现自动签到脚本功能
2020/08/20 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
python常量折叠基础知识点讲解
2021/02/28 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
在校大学生自我评价范文
2014/09/12 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
杨善洲电影观后感
2015/06/04 职场文书
爱国电影观后感
2015/06/19 职场文书
寒假生活随笔
2015/08/15 职场文书