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 播放器 控制
Jan 22 Javascript
js 分栏效果实现代码
Aug 29 Javascript
javascript for循环设法提高性能
Feb 24 Javascript
jquery插件制作 自增长输入框实现代码
Aug 17 jQuery
jQuery的animate函数学习记录
Aug 08 Javascript
JavaScript组件焦点与页内锚点间传值的方法
Feb 02 Javascript
用JS中split方法实现彩色文字背景效果实例
Aug 24 Javascript
bootstrap使用validate实现简单校验功能
Dec 02 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
Oct 09 Javascript
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
vue form check 表单验证的实现代码
Dec 09 Javascript
layui table 多行删除(id获取)的方法
Sep 12 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
php5.2.0内存管理改进
2007/01/22 PHP
php在线生成ico文件的代码
2007/10/09 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
对python的输出和输出格式详解
2018/12/08 Python
python实现最大优先队列
2019/08/29 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
大学生应聘求职信
2014/05/26 职场文书
中层干部培训方案
2014/06/16 职场文书
政风行风评议整改方案
2014/09/15 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
婚宴新郎致辞
2015/07/28 职场文书
JS代码编译器Monaco使用方法
2021/06/11 Javascript
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2021/10/16 Python