改变div大小echarts能自适应

改变窗口大小,图表自适应很好实现

window.onresize = myChart.resize;

但是如果是改变div大小,需要实现图表的自适应怎么解决?

完整代码:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			
			.box {
				width: 400px;
				height: 400px;
				background-color: #ccc;
				margin: 100px auto;
			}
			.box.max{
				position: fixed;
				top:0;
				left: 0;
				width: 100%;
				height: 100%;
				margin: 0;
			}
			
			#main {
				width: 100%;
				height: 100%;
			}
			.btns{
				position: fixed;
				top:0;
				left: 0;
				height: 100px;
				width: 100%;
				background-color: rgba(0,0,0,.5);
			}
		</style>
	</head>

	<body>
		<div class="box">
			<div id="main">
			</div>
		</div>
		<div class="btns">
			<button>改变div大小</button>
		</div>
	</body>
	<script src="js/echarts.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/jquery-1.8.3.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		var myChart = null;

		initChart();
		
		// 获取元素
		var btn =document.querySelector('button');
		var box = document.querySelector('.box');
		btn.onclick = function(){
			box.classList.add('max');
                   // 关键就是这行代码
                    $(window).trigger('resize');
		}

		function initChart() {
			if(myChart != null && myChart != "" && myChart != undefined) {
				myChart.dispose();
			}
			myChart = echarts.init(document.getElementById('main'));
			var option = {
				xAxis: {
					type: 'category',
					data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
				},
				yAxis: {
					type: 'value'
				},
				series: [{
					data: [120, 200, 150, 80, 70, 110, 130],
					type: 'bar'
				}]
			};

			myChart.setOption(option);
			// 图表自适应
			window.onresize = myChart.resize;
		};
	</script>

</html>

总结:

关键代码$(window).trigger('resize');触发窗口大小改变事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值