ECharts柱状图过多添加滚动条的步骤(亲测可用)

 更新时间:2024年01月11日 11:21:08   作者:凌霄玉阶非所愿  
这篇文章主要介绍了ECharts柱状图过多添加滚动条的步骤(亲测可用),添加echarts柱状图滚动条,首先添加js用来判断当前视图要显示几个及是否显示滚动条,本文结合实例代码介绍的非常详细,需要的朋友参考下吧

ECharts柱状图过多添加滚动条的步骤(亲测可用)

echarts引用js需较新版本,否则会不显示
ECharts官网地址

添加echarts柱状图滚动条,步骤如下:

首先添加js用来判断当前视图要显示几个及是否显示滚动条:

        var _DEPTNUMER = []; //存入所有科室
        var showEchart = false;
        var namenum = 0;
        if (_DEPTNUMER.length > 0) {
            namenum = Math.floor(100 / (_DEPTNUMER.length / 3));         //这个3可以顺便调整是用来判断当前视图要显示几个
            if (_DEPTNUMER.length > 3) {                                 //3也可以调整用来判断是否显示滚动条
                showEchart = true;
            } else {
                showEchart = false;
            }
        }

添加echarts滚动条:

 dataZoom: [
                    {
                        type: 'slider',
                        realtime: true,
                        start: 0,
                        end: namenum,  // 数据窗口范围的结束百分比。范围是:0 ~ 100。
                        height: 5, //组件高度
                        left: 5, //左边的距离
                        right: 5, //右边的距离
                        bottom: 10, //下边的距离
                        show: showEchart,  // 是否展示
                        fillerColor: "rgba(17, 100, 210, 0.42)", // 滚动条颜色
                        borderColor: "rgba(17, 100, 210, 0.12)",
                        handleSize: 0,      //两边手柄尺寸
                        showDetail: false, //拖拽时是否展示滚动条两侧的文字
                        zoomLock: true,         //是否只平移不缩放
                        moveOnMouseMove: false, //鼠标移动能触发数据窗口平移
                        //zoomOnMouseWheel: false, //鼠标移动能触发数据窗口缩放
                         //下面是自己发现的一个问题,当点击滚动条横向拖拽拉长滚动条时,会出现文字重叠,导致效果很不好,以此用下面四个属性进行设置,当拖拽时,始终保持显示六个柱状图,可结合自己情况进行设置。添加这个属性前后的对比见**图二**
                         startValue: 0, // 从头开始。
                         endValue: 6,  // 最多六个
                         minValueSpan: 6,  // 放大到最少几个
                         maxValueSpan: 6,  //  缩小到最多几个
                    },
                    {
                        type: "inside",  // 支持内部鼠标滚动平移
                        start: 0,
                        end: namenum,
                        zoomOnMouseWheel: false,  // 关闭滚轮缩放
                        moveOnMouseWheel: true, // 开启滚轮平移
                        moveOnMouseMove: true  // 鼠标移动能触发数据窗口平移 
                    }
                ]

如下图:

图二更改前(鼠标放到滚动条上面左右拖拽拉长时):

更改后:

扩展:

echarts使用getZr()事件获取柱状图当前点击列的数据

 var t = document.getElementById("cardChart");
    t.style.width = window.offsetWidth + "px";
    var cardChart = echarts.init(t),
                options = {
                    color: ['#3398DB'],
                    title: {
                        left: "right",
                        //text: new Date().getFullYear() + "年数据",
                        textStyle: {
                            color: "#2c2c2c",
                            fontSize: 14,
                            fontWeight: 500
                        }
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                            type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                        }
                    },
                    grid: {
                        left: '3%',
                        right: '4%',
                        bottom: '3%',
                        containLabel: true
                    },
                    xAxis: [{
                        type: "category",
                        data: dataYearCountName,
                        axisTick: {
                            alignWithLabel: true
                        },
                        axisLabel: {
                            interval: 0,    //强制文字产生间隔
                            rotate: 45,     //文字逆时针旋转45°
                            textStyle: {    //文字样式
                                color: "black",
                                fontSize: 14,
                                fontFamily: 'Microsoft YaHei'
                            }
                        }
                    }],
                    yAxis: [
                            {
                                type: "value"
                            }
                        ],
                    series: [
                            {
                                name: "例数",
                                type: "bar",
                                barWidth: "60%",
                                data: dataYearCountNum
                            }
                    ]
        };
    //-----------------从这里开始 -----------------
    //cardChart 柱状图名称
    cardChart.setOption(options);
    cardChart.off('click'); //防止触发两次点击事件
    cardChart.getZr().on('click', (params) => {
        let pointInPixel = [params.offsetX, params.offsetY];
        if (cardChart.containPixel('grid', pointInPixel)) {
            let pointInGrid = cardChart.convertFromPixel({
                seriesIndex: 0
            }, pointInPixel);
            let xIndex = pointInGrid[0]; //索引
            let handleIndex = Number(xIndex);
            let seriesObj = cardChart.getOption(); //图表object对象
            var op = cardChart.getOption();
            //获得图表中点击的列
            var month = op.xAxis[0].data[handleIndex];  //获取点击的列名
            console.log(month);
            console.log(handleIndex, seriesObj);
        };
    });

到此这篇关于ECharts柱状图过多添加滚动条(亲测可用)的文章就介绍到这了,更多相关ECharts柱状图滚动条内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 原生js页面滚动延迟加载图片

    原生js页面滚动延迟加载图片

    这篇文章主要介绍了原生js页面滚动延迟加载图片的相关资料,现在瀑布流效果大行其道,各种网站都有应用,尤其是专业的图片类型的网站,感兴趣的朋友可以参考下
    2015-12-12
  • javascript实现复选框选中属性

    javascript实现复选框选中属性

    本文给大家介绍的是一篇国外网友写的博客,讲解的是关于实现复选框选中属性的问题,感觉非常不错,翻译过来推荐给大家,希望小伙伴们能够喜欢。
    2015-03-03
  • HTML页面,测试JS对C函数的调用简单实例

    HTML页面,测试JS对C函数的调用简单实例

    下面小编就为大家带来一篇HTML页面,测试JS对C函数的调用简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 纯css实现窗户玻璃雨滴逼真效果

    纯css实现窗户玻璃雨滴逼真效果

    css实现窗户上水珠效果,效果特别逼真,窗外的雨淅淅沥沥飘打在玻璃上,看起来很像模糊的窗外,斜滴的雨露,接下来给大家一起来用CSS技术实现这样一幅画面,下面给大家分享使用纯css实现窗户玻璃雨滴逼真效果,感兴趣的朋友快乐围观吧
    2015-08-08
  • JS跨域之window.name实现的跨域数据传输

    JS跨域之window.name实现的跨域数据传输

    这篇文章主要介绍了JS跨域之window.name实现的跨域数据传输,需要的朋友可以参考下
    2022-01-01
  • 让插入到 innerHTML 中的 script 跑起来的实现代码

    让插入到 innerHTML 中的 script 跑起来的实现代码

    在做 ajax 编程时,我们常常需要将 xmlhttp 获取到的页面内容通过 innerHTML 来赋给某个容器(比如 div、span 或者 td 等),但是这里存在一个问题,就是我们将要赋给 innerHTML 的页面内容如果包含有脚本程序,这些脚本程序不管是外部脚本,还是内部脚本,可能(1)都不会被执行。
    2006-07-07
  • JavaScript 处理Iframe自适应高度(同或不同域名下)

    JavaScript 处理Iframe自适应高度(同或不同域名下)

    Iframe自适应高度一直都备受关注,接下来为大家介绍下同域名下Iframe自适应高度的处理以及跨域时Iframe高度自适应,感兴趣的朋友可以参考下哈
    2013-03-03
  • JS日期对象简单操作(获取当前年份、星期、时间)

    JS日期对象简单操作(获取当前年份、星期、时间)

    这篇文章主要介绍了JS日期对象简单操作,获取当前年份、星期、时间等代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • javascript输出AscII码扩展集中的字符方法

    javascript输出AscII码扩展集中的字符方法

    下面小编就为大家带来一篇javascript输出AscII码扩展集中的字符方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • Varlet组件实现一个丝滑的点击水波效果详解

    Varlet组件实现一个丝滑的点击水波效果详解

    这篇文章主要为大家介绍了Varlet组件实现一个丝滑的点击水波效果示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论