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 相关文章推荐
Firefox下提示illegal character并出现乱码的原因
Mar 25 Javascript
JavaScript Date对象 日期获取函数
Dec 19 Javascript
jQuery代码优化 选择符篇
Nov 01 Javascript
javascript检查表单数据是否改变的方法
Jul 30 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
JavaScript实现网页截图功能
Oct 16 Javascript
jQuery实现的经典滑动门效果
Sep 22 Javascript
微信小程序实现评论功能
Nov 28 Javascript
jQuery实现轮播图源码
Oct 23 jQuery
nginx配置域名后的二级目录访问不同项目的配置操作
Nov 06 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
AJAX实现省市县三级联动效果
Oct 16 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
php技巧小结【推荐】
2017/01/19 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
bootstrap table小案例
2016/10/21 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
基于Python List的赋值方法
2018/06/23 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
django序列化serializers过程解析
2019/12/14 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
外贸业务员求职自荐信分享
2013/09/21 职场文书
学前教育学生自荐信范文
2013/12/31 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
考核评语大全
2014/04/29 职场文书
股份合作协议书
2014/09/10 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
个人德育工作总结
2015/03/05 职场文书
招商银行工作证明
2015/06/17 职场文书
校运会宣传稿大全
2015/07/23 职场文书
获奖感言一句话
2015/07/31 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
Python内置的数据类型及使用方法
2022/04/13 Python
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers