最近使用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
# 图表
# vue2
# Echarts
# vue3写echarts不能根据屏幕大小缩的解决办法
# 自己的
# 是在
# 很久
# 也很
# 用了
# 找了
# 写了
# 当我们
# 没有找到
# 所需要
# 大家多多
# 小而
# 在网上
# 雪纺
# 我以前
# button
# left
# width
# float
# script
相关文章:
如何在宝塔面板中修改默认建站目录?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
如何选择靠谱的建站公司加盟品牌?
盘锦网站制作公司,盘锦大洼有多少5G网站?
建站之星logo尺寸如何设置最合适?
网站微信制作软件,如何制作微信链接?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
Swift中swift中的switch 语句
西安大型网站制作公司,西安招聘网站最好的是哪个?
如何用已有域名快速搭建网站?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
网站app免费制作软件,能免费看各大网站视频的手机app?
宝塔Windows建站如何避免显示默认IIS页面?
网站制作壁纸教程视频,电脑壁纸网站?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
建站主机选购指南:核心配置优化与品牌推荐方案
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何通过商城自助建站源码实现零基础高效建站?
如何用美橙互联一键搭建多站合一网站?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何在云服务器上快速搭建个人网站?
家庭服务器如何搭建个人网站?
高端建站如何打造兼具美学与转化的品牌官网?
建站主机无法访问?如何排查域名与服务器问题
南平网站制作公司,2025年南平市事业单位报名时间?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
Swift中循环语句中的转移语句 break 和 continue
大学网站设计制作软件有哪些,如何将网站制作成自己app?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
C++中引用和指针有什么区别?(代码说明)
制作网页的网站有哪些,电脑上怎么做网页?
如何快速生成专业多端适配建站电话?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何在云主机快速搭建网站站点?
如何零基础开发自助建站系统?完整教程解析
网页设计网站制作软件,microsoft office哪个可以创建网页?
宝塔面板如何快速创建新站点?
ui设计制作网站有哪些,手机UI设计网址吗?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
网站制作网站,深圳做网站哪家比较好?
广州营销型建站服务商推荐:技术优势与SEO优化解析
如何通过.red域名打造高辨识度品牌网站?
建站之星免费模板:自助建站系统与智能响应式一键生成
如何快速选择适合个人网站的云服务器配置?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
太平洋网站制作公司,网络用语太平洋是什么意思?
如何通过西部建站助手安装IIS服务器?
*请认真填写需求信息,我们会在24小时内与您取得联系。