• echarts柱状图个数多,横坐标名称过长显示不全解决方法


    当echarts柱状图个数多,横坐标名称过长时横坐标名称显示不全,网上并没有搜到太好的方法,于是自己加工了下,将横坐标名称显示前六位,当鼠标放到上面的时候显示全名,下面是示例代码,可以直接拷贝测试


    代码解读

     HTML:

    <div class="mychartBlock" style="33%;float:left;position:relative;border-right:5px solid #FAFAFA">
        <div class="pie1xWrap" style="100%;height:60px;margin:0 auto;position:absolute;bottom:-6px;"></div>
        <div class="pie1xLine" style="100%;height:10px;margin:0 auto;position:absolute;bottom:43px;z-index:10000;"></div>
        <div id="main" style="98%;min-height:300px;margin:0px auto 0;z-index:1000;"></div>
    </div>

    示例代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
        <script src="https://cdn.bootcss.com/echarts/3.6.2/echarts.min.js"></script>
    </head>
    <body>
    <div class="mychartBlock" style="33%;float:left;position:relative;border-right:5px solid #FAFAFA">
        <div class="pie1xWrap" style="100%;height:60px;margin:0 auto;position:absolute;bottom:-6px;"></div>
        <div class="pie1xLine" style="100%;height:10px;margin:0 auto;position:absolute;bottom:43px;z-index:10000;"></div>
        <div id="main" style="98%;min-height:300px;margin:0px auto 0;z-index:1000;"></div>
    </div>
    <div class="tip" style="display:none;height:30px;line-height:30px;padding:0 5px;position:absolute;background:rgba(0,0,0,0.6);border-radius:3px;color:#fff;z-index:10000;"></div>
    <script>
        var indexdata=[];
        var dataAll=['HTML5与CSS3权威指南', 'JavaScript高级程序设计', 'JavaScript DOM编程艺术', '超实用的jQuery代码段', '锋利的jQuery', '深入理解Bootstrap', 'AngularJS权威教程'];
        var myChart=echarts.init(document.getElementById('main'));
        var option = {
            title: {
                text: '前端书籍使用人数',
                subtext:'',
                x:'center'
            },
            tooltip: {
                trigger: 'axis',
                axisPointer:{
                    clickable:true,
                    type : 'line',        // 默认为直线,可选为:'line' | 'shadow'
                    lineStyle:{
                        color:'rgba(0,0,0,0)',
                    }
                },
                formatter: function (params) {
                    var res="";
                    for (var i = 0, l = params.length; i < l; i++) {
                        var index1=params[i].dataIndex;
                        res =dataAll[index1]+"<br>"+ (option.title.text).replace("(%)","")+' : ' + params[i].value+"%";
                    }
                    return res;
                }
            },
            legend: {
                data: []
            },
             grid: {
                left: '23',
                right: '40',
                bottom: '28',
                top: '65',
                containLabel: true
            },
            yAxis: {
                name:"数量",
                nameGap:"8",
                type: 'value',
                min:0,
            },
            xAxis: {
                type: 'category',
                name: '书名',
                nameGap:8,
                triggerEvent:true,
                axisLabel:{
                    clickable:true,
                    interval:0,
                    rotate:30
                },
                data : [],
                splitLine: {
                    show: true,
                }
            },
            series: [
                {
                    type: 'bar',
                    name: '',
                    data:[10, 52, 200, 334, 390, 330, 220],
                    barMinHeight: 15,
                    barWidth:'30%',
                    barMaxWidth:25,
                    label:{
                        normal:{
                            show:true,
                            position:'top',
                            textStyle: {
                                 color: '#000',
                            }
                        }
                    }
                },
            ]
        };
        indexdata=[];
        for(var i=0;i<dataAll.length;i++){
            var obj=[];
            obj.push(i);
            obj.push(dataAll[i]);
            indexdata.push(obj);
            obj=[];
            option.xAxis.data[i]=dataAll[i].substring(0,6);
        }
        myChart.setOption(option);
        myChart.on("mousemove",function(params){
            if(params.componentType=="xAxis" && params.targetType=="axisLabel"){
                for(var i=0;i<indexdata.length;i++){
                    var xAxisIndex=params.event.target.anid.split("_")[1];
                    if(indexdata[i][0]==xAxisIndex){
                        Manufactermove=indexdata[i][1];
                        jQuery(".tip").html(indexdata[i][1]);
                    }
                }
                var obj=getMousePos(event);
                jQuery(".tip").show();
                jQuery(".tip").css("top",obj.y-40);
                jQuery(".tip").css("left",obj.x+5);
                jQuery(".tip").mouseover(function(){
                    var obj=getMousePos(event);
                    jQuery(".tip").css("display","");
                    jQuery(".tip").css("top",obj.y-60);
                    jQuery(".tip").css("left",obj.x+5);
                })
            }else{
                jQuery(".tip").css("display","none");
            }
        });
    //获取鼠标位置
    function getMousePos(event) {
        var e = event || window.event;
        var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
        var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
        var x = e.pageX || e.clientX + scrollX;
        var y = e.pageY || e.clientY + scrollY;
        //alert('x: ' + x + '
    y: ' + y);
        return { 'x': x, 'y': y };
    }
    jQuery(".pie1xWrap").unbind("mouseout");
        jQuery(".pie1xWrap").mouseout(function(){
            jQuery(".tip").css("display","none");
        });
        jQuery(".pie1xLine").unbind("mouseout");
        jQuery(".pie1xLine").mouseout(function(){
            jQuery(".tip").css("display","none");
        });
    </script>
    </body>
    </html>
  • 相关阅读:
    Struct2_使用Ajax调用Action方法并返回值
    Eclipse使用maven创建struct2项目及遇到的各种坑
    IIS7.5 提示未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序
    使用Canvas实现下雪功能
    基于脚本的动画的计时控制(“requestAnimationFrame”)(转)
    pointer-events属性
    chrome Provisional headers are shown错误提示
    Wcf资料收集
    Asp.Net WebApi 启用CORS跨域访问指定多个域名
    Cors 跨域Access-Control-Allow-Origin
  • 原文地址:https://www.cnblogs.com/web520/p/6824404.html
Copyright © 2020-2023  润新知