前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >echarts - 使用echarts过程中遇到的问题(pending...)

echarts - 使用echarts过程中遇到的问题(pending...)

作者头像
xing.org1^
发布2018-12-07 17:34:40
1.4K0
发布2018-12-07 17:34:40
举报
文章被收录于专栏:前端说吧

 1. 配合tab切换时,被display:none的元素init设置echarts失败

2018-11-09  18:09:35

现象描述:有一个tabs选项卡,每个切换项A、B中都有使用echarts,默认展示的A项中的ecarts初始化和绘制都没问题。

而第二个默认隐藏项B就是一片空白。检查B的echarts盒子还在且是css中设置的宽高大小。但是内部canvas为空,即图表没有绘制。

找问题过程:

假如我的echarts图表所在元素为:div#echartsDiv。

并将其父元素设置 display:none

然后我console一下document.getElementById('echartsDiv');

展开抛出的对象会发现:他的clientWidth和Height都是0,甚至scroll和offset系列的宽高皆为0(看图别介意id名对不上)

对比一个父元素没有隐藏的元素,他的宽高就很正常:

这样我们就明白了,echarts绘制之前是要获取要绘制区域的宽高的,如果皆为0那肯定失败的。

找到问题原因,就是解决: 既然根出在初始化时的元素宽高上,那我们开局就设置宽高即可。

我这里的主要问题是场景用在移动端,元素宽度肯定要随着设备的屏幕改变的。

如果直接在style上设置(注意,我尝试在css上设置了,没用),不能设置固定的数值。

所以我利用js的方法在js的开端设置了下:

代码语言:javascript
复制
let echartsW= $('.echarts-box').width();
$('.echarts-cont').css('width',echartsW);

echarts-box是我存放图标的总的父元素,echarts-cont是我所有图标公用的类名。

然后如果在pc端做响应式的页面时,如果遇到需要满足当屏幕大小被用户扯着随机变时图标也要改变的需求时,可以试试下边这个:

代码语言:javascript
复制
$(window).resize(function () {
  let echartsW= $('.echarts-box').width();
  $('.echarts-cont').css('width',echartsW);
});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  1. 配合tab切换时,被display:none的元素init设置echarts失败
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档