美文网首页
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