美文网首页程序员程序猿阵线联盟-汇总各类技术干货
处理点击tab标签时Echarts图片显示不全的问题

处理点击tab标签时Echarts图片显示不全的问题

作者: 彩虹的夜晚 | 来源:发表于2018-01-25 23:28 被阅读770次

    背景介绍

    项目中经常会用到使用图表来展示数据的方式,作为国内的开发者,我们会优先选择使用Echarts图表,一般情况下我们都是在页面上展示一个图表;但是最近在项目中遇到一个需要点击切换tab标签来显示Echarts图表,当然了这样也是能做的,那我们可以采用异步加载的方式来进行显示,但是呢,在我目前的项目中采用这种异步加载的方式特别麻烦,所以只能选择采用在加载页面的时候,就将2个tab标签页的数据都显示出来,tab标签页的第一个Echarts图表显示正常,点击切换tab页面时第二个页面显示不正常,各种搜索之后得到解决办法:需要将第二个图表resize操作,因为第二个图表中style=“display:none的”,默认是没有宽度和高度的,下面先展示处理前的图表和处理后的图表。

    处理前 处理后

    既然找到了处理的办法,那接下来就是如何实现它。

    HTML代码

    <div class="tabJs">
        <div class="Tab_Cont">
            <div class="cur">
                <div id="index_main01" style="width:96%; height: 5.3rem;margin: 0 auto;"></div>
            </div>
            <div>
                <div id="index_main0100" style="width:96%; height: 5.3rem;margin: 0 auto;"></div>
            </div>
        </div>
        <ul class="echartsUl">
            <li class="active">
                <a class="echartsSub" style="color: #519ee8;"><span><img src="__IMG__/zengzhanglu.png" /></span>净值增长率</a>
            </li>
            <li>
                <a class="echartsSub"><span><img src="__IMG__/jingzhi1.png" /></span>净值走势</a>
            </li>
        </ul>
    </div>
    

    js代码

    <script>
    $(function() {
        $(".tabJs .echartsUl li").click(function(){
            var this_index = $(this).index();
            var this_tabjs = $(this).parents(".tabJs");
            this_tabjs.find(".echartsUl li").removeClass("active");
            $(this).addClass("active");
            this_tabjs.find(".Tab_Cont >div").removeClass("cur");
            this_tabjs.find(".Tab_Cont >div").eq(this_index).addClass("cur");
            var optId = this_tabjs.find(".Tab_Cont >div").eq(this_index).find('div').attr("id");
            var chart = echarts.init(document.getElementById(optId));
            // 手动初始化图表
            chart.resize();
        });
    })
    </script>
    

    当然需要在开始的地方引入Echarts插件。

    总结:

    1. 加载页面时将tab标签中2个图表的数据都加载过来。
    2. 点击切换时,将第二个要展示的图表ID获得,然后初始化第二个图表,最后调用它的resize()方法

    相关文章

      网友评论

        本文标题:处理点击tab标签时Echarts图片显示不全的问题

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