美文网首页
echarts 移动端自适应配置不生效的问题

echarts 移动端自适应配置不生效的问题

作者: 纯爱枫若情 | 来源:发表于2019-09-21 10:16 被阅读0次

echarts 是百度开源的一个前端数据可视化图表库,用来展示数据非常的便捷。

下面是官网的简介:

ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

最近的项目有适配移动端的需求,因此也研究了一下 echarts 移动端适配的方法。

我之前有些过一篇文章,介绍过 echarts 移动端的适配方法,感兴趣的朋友可以去看看:https://www.jianshu.com/p/091c6812b0ad

我这篇文章当然不是想把之前写过的内容,再拎出来写一遍了,这样也太没诚意了。

我这篇文章主要想讲讲的是,自己在使用官网提供的移动端适配解决方案的时候,碰到的问题。

首先还是给出官网提供的移动端适配解决方案吧,原理很简单,就是根据父容器宽高的不同,来配置不同的配置项。

这个解决方案有点类似于 css 的媒体查询,写过 css 的同学应该都不陌生吧。

在这里插入图片描述
如果以前没用过,又想详细了解的同学,可以点击下面的链接,进入官网查看:https://echarts.apache.org/zh/tutorial.html#%E7%A7%BB%E5%8A%A8%E7%AB%AF%E8%87%AA%E9%80%82%E5%BA%94

原理虽然简单,但是最近写着写着,发现我按照规则配置的样式好像并没有真正的生效。

比如现在用 echarts 做了个图表:

正常状态是这样的:


在这里插入图片描述

然后随着我屏幕逐渐缩小,这个图表也是逐渐缩小的。

像下面这样的效果:


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

但是在使用的过程中,我却发现,我照着官网提供的规则去写,好像并不完全奏效。

但是,不知道是我没有掌握 echarts 的调试方法,还是它本身调试起来就比较困难。

花了好大功夫,才终于找到问题所在。

原来是我传入的配置项不是按照顺序传入的,比如我是这样写的:

media: [ // 这里定义了 media query 的逐条规则。
    {                   // 这条里没有写规则,表示『默认』,
            option: {       // 即所有规则都不满足时,采纳这个option。
            }
    },
    {
            query: { maxHeight: 500},   // 这里写规则。
            option: {       // 这里写此规则满足下的option。
            }
    },
    {
            query: {maxHeight: 300},   // 第二个规则。
            option: {       // 第二个规则对应的option。
            }
    },
    {
            query: {maxHeight: 200},   // 第二个规则。
            option: {       // 第二个规则对应的option。
            }
    },
    {
            query: {maxHeight: 350},   // 第二个规则。
            option: {       // 第二个规则对应的option。
            }
    },
]

当我把 echarts 图表的容器的宽度调整到 300 以下的时候,我发现它应用的还是最后一条规则。

最后我调整各项的顺序,按照最大高度的降序排列,才能够正确的显示出来了。

所以我们知道问题出现在哪里了,就是因为我们设置的规则,echarts 内部在运用的时候,并没有进行排序操作,而知识简单的从前往后叠加,所以造成了我碰到的这个 bug。

所以结论就是,如果你想要采用这种方式让 echarts 适配移动端,就需要注意你传入的规则的顺序,按照顺序来配置对应的规则,才不会出错。

相关文章

网友评论

      本文标题:echarts 移动端自适应配置不生效的问题

      本文链接:https://www.haomeiwen.com/subject/mogsuctx.html