Echarts跟随容器自适应大小

40 篇文章 1 订阅
6 篇文章 0 订阅
Echarts跟随容器自适应大小

浏览器缩放,echarts图表大小可以随着浏览器窗口变化而改变。可以兼容各种分辨率。也可以获取echarts容器父级高度和宽度改变echarts图表的大小。

dom层放置一个echarts图表容器,

<template>
	<div ref="main_div" >
		<div id="ChartEcharts"></div>
	</div>
</template>

JavaScript代码

mounted方法里监听页面变化的方法。geth方法是获取页面高度的方法。这里有一个递归调用。为啥递归调用呢?因为页面最开始加载echarts,echarts的容器还没准备好,echarts找不到容器。咱们就用递归算法什么时候有高度了宽度了就加载echarts,100毫秒调用一次。

	var ChartEcharts;
	export default {
  		data() {
			return {
				main_div_w: 0,
				main_div_h: 0
			}
		},
		methods: {
            initDoubleEncircle() {
				let that = this;
				//有的话就获取已有echarts实例的DOM节点。
				ChartEcharts= echarts.getInstanceByDom(document.getElementById('ChartEcharts')); 
				// 如果不存在,就进行初始化。
				if (ChartEcharts== null) {
					ChartEcharts= echarts.init(document.getElementById('ChartEcharts'));
				}
				// 根据你的业务自己设计图表
			    let option = {...}
				ChartEcharts.setOption(option)
			},
			get_echarts_h_w() {
				var that = this;
				that.$nextTick(function () {
					that.geth()
				})
			},
			geth() {
				let that = this;
				setTimeout(function () {
				// 获取浏览器窗口或者其他的容器都行的
				var docEl = document.documentElement;
					that.main_div_w = docEl.clientWidth; //that.$refs.main_div.offsetWidth
					that.main_div_h = docEl.clientHeight;//that.$refs.main_div.offsetHeight
					if (that.main_div_h < 10) {
						that.geth()
					} else {
						that.$nextTick(() => {
							that.initDoubleEncircle();
							ChartEcharts.resize({ width: (that.main_div_w * 0.3), height: (that.main_div_h * 0.1) });
						})
					}
				}, 100)
			},
		},
		mounted() {
			var that = this
			// 可以监听到浏览器窗口的变化 
			window.addEventListener('resize', function () {
				  that.get_echarts_h_w()
			});
		}
	}

本人爱分享。文章有不对的地方,联系我哦。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值