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运行耗时操作的延时显示方法
Nov 19 Javascript
jquery.validate的使用说明介绍
Nov 12 Javascript
每日十条JavaScript经验技巧(一)
Jun 23 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
Sep 28 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
对angularjs框架下controller间的传值方法详解
Oct 08 Javascript
微信小程序实现打卡日历功能
Sep 21 Javascript
javascript操作元素的常见方法小结
Nov 13 Javascript
JavaScript字符串转数字的简单实现方法
Nov 27 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
详解django中自定义标签和过滤器
2017/07/03 Python
Python 文件操作的详解及实例
2017/09/18 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
使用python turtle画高达
2020/01/19 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
小学教育毕业生自荐信
2013/11/18 职场文书
和解协议书
2014/04/16 职场文书
生日宴会策划方案
2014/06/03 职场文书
忠诚教育心得体会
2014/09/03 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书