echarts不能正常显示,调试的时候又能正常显示

发布于 2022-01-06 04:26:09 字数 255 浏览 847 评论 4

我用的是echarts 2.2.7 的echarts.min.js,数据没有问题,饼图的函数写法没有错,但是第一次加载时饼图就是不显示,我在调用饼图函数的前面写个alert(1), 后又能正常显示。用火狐浏览器调试的时候一步一步下去,又是能显示饼图的,但是不调试,重新刷新页面又不能显示。不知怎么解决。

类似的同样问题,图表有显示,我在函数里写myChart.getDataURL ();但是得到的64位编码为空,调试的时候又有了.

我用的是火狐浏览器

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哑剧 2022-01-07 16:15:36

控制台是没有报错的,没有异常信息。问题是解决了。解决方法是在页面一开始不能只把echarts.js包含进来,还要把你所用到的,比如pie.js也要包含进来,这样以上的情况就不会出现了。可是echarts的初始化实例里面是只包含了echarts.js的

秋意浓 2022-01-07 02:12:28

一般这种情况都是由于异步加载问题,而alert能和debug能出现饼图就是因为它们会中断JS的执行,这样在继续往下走的时候异步的数据已经获取到了。可以用F12看看控制台是不是有异常信息

时光清浅 2022-01-06 20:30:32

/*饼图*/

function pie_fail_chart(id,data)

{

    var myChart;

    var imgURL;

    var scroll_div = document.getElementById(id).parentNode;

    scroll_div.scrollTop = scroll_div.scrollHeight * 0.2;

    scroll_div.scrollLeft = scroll_div.scrollWidth * 0.2;

    if( data.data.length == 0 )

    {

        $("#"+id).empty();

        $("#"+id).append("<center><span style='display:inline-block;margin-top:20%;color:#C0C0C2'>当前失败次数为0,暂无失败原因</span></center>");

        return null

    }

    require(

            [

                 'echarts',

                 'echarts/chart/pie'

             ],

    function(ec){

    

    $("#"+id).empty();    

    myChart = ec.init(document.getElementById(id));

    var option = {

        animation:false,

        tooltip : {

            trigger: 'item',

            formatter: "{b} <br/>当前值:{c} ({d}%)",

        },

        calculable : false,

        series : [

            {

                name:'失败原因',

                type:'pie',

                radius : '36.7%',

                center: ['50%', '55%'],

                itemStyle : {

                    normal : {

                        label : {

                            show : true

                        },

                        labelLine : {

                            show : true

                        }

                    },

                },

                data:data.data,

            }

        ]

    };

    myChart.setOption(option);

    $("#"+id).css({"border":"1px solid #ccc"});

    imgURL = myChart.getDataURL();

    });

    return imgURL;

}

这是我的代码,有时候图画出来,可是返回的imgURL却是null

@林峰

绝情姑娘 2022-01-06 18:33:39

echarts在默认隐藏的div中显示空白,有时候图表会放在多个标签页(tab)里,那些初始隐藏的标签在初始化图表的时候因为获取不到容器的实际高宽,可能会绘制失败(不显示图表、图表的高度为0或者宽度为0),解决办法是在echarts渲染之前先设置div的宽高,然后再调用echarts的setOption配置项和数据显示图表。

具体的实现代码可以参照这篇文章:
echarts 不显示,tab切换重新渲染Echarts

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文