项目背景:

  需要使用echarts进行图表展示。由于div宽高是不固定的,因此需要先获取父级的宽高再把值赋予到图表的div中。

  需要使用 this.$nextTick(() => {    });方法,在mounted中,保证DOM渲染完全后,在进行echarts初始化。

<!--wifi数据采集-->
<template>
<div class="wifiCollectCtrl">
<div id="wifiCollectID"></div>
</div>
</template> <script>
import echarts from 'echarts'; export default {
name: "wifiCollect",
props: {
className: {type: String, default: 'chart'},
id: {type: String, default: 'wifiCollectID'}, },
data() {
return {
chart: null,
seriesData: '',
xAxisTxt: '',
color: [
'#3D89FE', '#9bca62', '#2ec7c9', '#b6a2de', '#5ab1ef',
'#8d98b3', '#e5cf0d', '#97b552', '#95706d', '#dc69aa',
'#07a2a4', '#9a7fd1', '#588dd5', '#f5994e', '#c05050',
'#59678c', '#c9ab00', '#7eb00a', '#6f5553', '#c14089'
]
};
},
mounted() {
this.$nextTick(() => { //使用nextTick为了保证dom元素都已经渲染完毕
this.initChart();
});
},
beforeDestroy() {
if (!this.chart) {
return
}
this.chart.dispose();
this.chart = null;
},
created() { },
methods: {
initChart() {
$("#wifiCollectID").width($(".wifiCollectCtrl").width());
$("#wifiCollectID").height($(".wifiCollectCtrl").height());
this.chart = echarts.init(document.getElementById(this.id));
this.chart.setOption({
color: this.color,
title: {
text: '',
},
calculable: true,
grid: {
left: '50px',
right: '3%',
bottom: '20px',
top: '15px'
},
xAxis: [
{
type: 'category',
// data : this.xAxisTxt,
data: ['花园小区', '锦园小区', '云台小区', '教师宿舍区'],
splitLine: {show: false},//去除网格线
axisLine: {
lineStyle: {
color: '#3D89FE',
width: 1
}
},
axisLabel: {
show: true,
textStyle: {
color: '#fff'
}
}
}
],
yAxis: [
{
type: 'value',
splitLine: {//去除网格线
show: true,
lineStyle: {
color: ['#1F4781'],
width: 1,
}
},
axisLine: {
lineStyle: {
color: '#3D89FE',
width: 1
}
},
axisLabel: {
show: true,
textStyle: {
color: '#fff'
}
}
}
],
series: [
{
name: '所属小区',
type: 'bar',
barMaxWidth: '30',
// data:this.seriesData,
data: [20, 340, 40, 39]
} ]
})
}
} }
</script> <style scoped>
.wifiCollectCtrl {
color: #333;
padding: 5px;
width: 100%;
height: 100%;
position: relative;
}
</style>

  

vue 动态获取div宽高有时候为0的情况的更多相关文章

  1. 微信小程序之动态获取元素宽高

    我以前一直以为微信小程序不能动态获取view元素的宽高.但是自从看到: wx.createSelectorQuery() 这个api接口,以前的某些问题就能得到解决了... 那么,这个api接口怎么用 ...

  2. Vue中获取元素宽高

    <div ref="init"></div> 写在 页面 方法 部分 这里的 offsetHeight 是返回元素的宽度(包括元素宽度.内边距和边框,不包括 ...

  3. js获取图片信息(二)-----js获取img的height、width宽高值为0

    首先,创建一个图片对象: var oImg= new Image(); oImg.src = "apple.jpg"; 然后我们打印一下图片的信息: console.log(oIm ...

  4. vue 获取屏幕宽高 width height

    /**  * 获取屏幕宽高  */ Vue.prototype.getViewportSize = function(){   return {     width: window.innerWidt ...

  5. JS快速获取图片宽高的方法

    快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...

  6. 动态布局--动态修改RelativeLayout宽高的方法

    本文实例讲述了Android编程动态修改RelativeLayout宽高的方法.分享给大家供大家参考,具体如下: 我们经常会动态修改RelativeLayout的宽高,这样的代码,比较简单,就是修改R ...

  7. 转载:JS快速获取图片宽高的方法

    快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...

  8. iOS根据文字字数动态确定Label宽高

    我们有时候在写项目的时候,会碰到,意见反馈,还有其他地方,讲座活动细则等需要大篇展示的文本, 因为每次服务器返回的内容大小不一,所以需要动态的调整label的宽高: 在ios 6 的时候可以: -(v ...

  9. 写个js动态调整图片宽高 (原创)

    <body style="TEXT-ALIGN: center;"> <div id="testID" style="backgro ...

随机推荐

  1. list转map工具类,根据指定的字段分组

    import org.apache.log4j.Logger; import java.lang.reflect.Method;import java.util.ArrayList;import ja ...

  2. jdbc 读取oracle long raw 字段,里面存的是文本

    jdbc 读取oracle long raw 字段,里面存的是文本 参考: http://singlewolf.iteye.com/blog/278769 http://blog.csdn.net/r ...

  3. Android学习笔记(17):文本框TextView类

    TextView继承自View.用于显示文本.它有很多的子类,掌握其属性是非常重要的. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5 ...

  4. 怎样 获取 ios的系统版本

    获得Ios系统版本的函数,比方 函数定义: [cpp] view plaincopy + (float)getIOSVersion; 函数实现: [cpp] view plaincopy + (flo ...

  5. Android开发时经经常使用的LogUtil

    在开发过程中经经常使用到Log.我们常写的一种方式就是自己定义一个LogUtil工具类 private static boolean LOGV = true; private static boole ...

  6. maven环境配置好,一直提示mvn不是内部命令

    设置了环境变量  M2_HOME  跟path  ,在cmd中输入mvn一直提示不是内部命令 解决办法:通过命令设置path 如下:set  path=输入值

  7. GIT 源码管理-简介

    关于GIT GIT 是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布.最初目的是为更好地管理Linux内核开发而设计.是目前世界上最先进的分 ...

  8. MyBatis的关联映射和动态SQL

    CREATE TABLE tb_card ( id INT PRIMARY KEY AUTO_INCREMENT, CODE ) ); '); CREATE TABLE tb_person ( id ...

  9. Juniper路由器

    Juniper路由器入门之一:需要子接口的端口配置 set interfaces fe-2/0/1 vlan-tagging              ――――在配置接口启用封装VLAN set in ...

  10. winFrom线程

    方法--->委托--->BeginInvoke用指定的参数异步执行委托 委托就是我想做什么,而你可以作什么,我就让你去做.