如何通过单击Chart.js v2画布外部的自定义按钮来导航工具提示弹出窗口?

无限循环

在Chart.js v2库下讨论移动可用性,

我们可以在RadarChart中的那些“得分”上模拟点击事件吗?我之所以这样问是因为,通过单击Chart中的那些点以通过返回的索引触发外部交互,“得分点”导航的桌面视图和平板电脑视图看起来还可以。

一个受欢迎的例子是

$('#ChartV2').click(function(e) {
            var activePoints = myRadarChart.getElementsAtEvent(e);                  
            var firstPoint = activePoints[0];
            console.log(firstPoint);
            if (firstPoint !== undefined){
               alert(firstPoint._index); 
               //so then we can use 
              // index to hide show results in the  html elements out of canvas , etc
            }

});

但是,如果您查看移动视图,则在response:true下,通过自动调整大小,图表将变得更小,因此,雷达图内的点对于移动点击而言可能非常小,
与标签相同,所有内容都会变得更小且难以点击。

是否可以自定义让用户浏览这些“得分”(最初是通过手动单击画布触发的)

是否可以通过Radarchart左侧和右侧的外部“上一个”,“下一个”导航按钮(例如那些滑块/转盘导航按钮)间接触发?

土豆皮

您可以通过使用图表实例方法来完成此操作


脚本

var myRadarChart = new Chart(ctx, {
    ...

(function (chart) {
    var helpers = Chart.helpers;

    var currentDatasetIndex;
    var currentPointIndex;

    $('#ChartV2').click(function (e) {
        // try getting an element close to the click
        var activePoints = chart.getElementAtEvent(e);
        var firstPoint = activePoints[0];

        if (firstPoint === undefined) {
            // otherwise pick the first visible element
            helpers.each(chart.data.datasets, function (dataset, datasetIndex) {
                if (firstPoint === undefined && this.isDatasetVisible(datasetIndex)) {
                    var meta = this.getDatasetMeta(datasetIndex);
                    firstPoint = meta.data[0];
                }
            }, chart);
        }

        // need this check as we may have 0 visible elements
        if (firstPoint !== undefined) {
            currentDatasetIndex = firstPoint._datasetIndex;
            currentPointIndex = firstPoint._index;
            $('#prev, #next').removeAttr('disabled');
            updateView();
        }
    });

    $('#prev').click(function () {
        // we add (n - 1) and do a modulo n to move one step back in an n element array.
        if (currentPointIndex === 0)
            currentDatasetIndex = (currentDatasetIndex + chart.data.datasets.length - 1) % chart.data.datasets.length;
        currentPointIndex = (currentPointIndex + chart.data.labels.length - 1) % chart.data.labels.length;
        updateView();
    });

    $('#next').click(function () {
        currentPointIndex = (currentPointIndex + 1) % chart.data.labels.length;
        if (currentPointIndex === 0)
            currentDatasetIndex = (currentDatasetIndex + 1) % chart.data.datasets.length;
        updateView();
    });


    // this (hoisted) function will update the text and show the tooltip
    function updateView() {
        $('#value').text(
            chart.data.datasets[currentDatasetIndex].label + ' : ' +
            chart.data.labels[currentPointIndex] + ' : ' +
            chart.data.datasets[currentDatasetIndex].data[currentPointIndex]);

        // we mess around with an internal variable here - this may not work with a new version
        chart.tooltip._active = [ chart.getDatasetMeta(currentDatasetIndex).data[currentPointIndex] ];
        chart.tooltip.update();
        chart.render();
    }

}(myRadarChart));

如果您只想在小屏幕上使用此功能,只需在上述图表单击处理程序中添加屏幕尺寸检查,然后使用媒体查询隐藏按钮和标签。


小提琴-http: //jsfiddle.net/uxqL6rwf/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过单击Chart.js v2画布外部的自定义按钮来导航工具提示弹出窗口?

来自分类Dev

如何通过HTML按钮单击链接外部JS函数

来自分类Dev

删除自定义Chart Js工具提示颜色方块

来自分类Dev

如何通过单击并使用香草js来更改div的图标?

来自分类Dev

如何自定义Chart.js折线图的工具提示?

来自分类Dev

Chart.js v2:如何使工具提示始终显示在饼图中?

来自分类Dev

C3.js通过单击按钮显示工具提示

来自分类Dev

如何知道按钮是通过单击还是在react.js中使用Enter或空格键单击的?

来自分类Dev

如何通过单击Angular Js中的按钮来更改主体背景图像?

来自分类Dev

如何通过单击REACT.js中的按钮来更改表单字段?

来自分类Dev

自定义弹出菜单twitter-bootstrap在工具提示上,并在单击按钮时显示

来自分类Dev

JavaScript Chart.js-自定义数据格式以显示在工具提示上

来自分类Dev

为工具提示方块Chart.js设置自定义颜色

来自分类Dev

设置工具提示方块Chart.js的自定义颜色

来自分类Dev

Chart.js自定义工具提示模板索引

来自分类Dev

chart.js条形图上的自定义工具提示

来自分类Dev

如何在画布内的Fabric JS图像上添加文本框弹出窗口(jQuery工具提示或类似内容)?

来自分类Dev

在 Chart.js v2 圆环图工具提示中显示所有值

来自分类Dev

通过单击图表Chart js + react打印列表

来自分类Dev

如何通过单击链接在屏幕上打开框并在JS中单击外部时将其隐藏

来自分类Dev

如何仅通过Fabric.js单击实际内容来选择对象

来自分类Dev

如何通过单击d3.js图来调用Ajax

来自分类Dev

如何通过单击选择元素(Vue.js)的选项项来触发操作?

来自分类Dev

通过JS单击所有按钮

来自分类Dev

如何通过单击单选按钮切换标签的类别。需要Vanilla JS而不是JQuery

来自分类Dev

Highcharts-如何在3D散点图上的点工具提示(弹出窗口)中设置自定义内容,或如何自定义点工具提示信息?

来自分类Dev

如何通过单击我的网站页面上的按钮来调用Crossrider“ background.js”中声明的javascript函数?

来自分类Dev

如何通过使用JS / Jquery单击同一按钮来重复一段html代码10次?

来自分类Dev

如何自定义单击为双击?js

Related 相关文章

  1. 1

    如何通过单击Chart.js v2画布外部的自定义按钮来导航工具提示弹出窗口?

  2. 2

    如何通过HTML按钮单击链接外部JS函数

  3. 3

    删除自定义Chart Js工具提示颜色方块

  4. 4

    如何通过单击并使用香草js来更改div的图标?

  5. 5

    如何自定义Chart.js折线图的工具提示?

  6. 6

    Chart.js v2:如何使工具提示始终显示在饼图中?

  7. 7

    C3.js通过单击按钮显示工具提示

  8. 8

    如何知道按钮是通过单击还是在react.js中使用Enter或空格键单击的?

  9. 9

    如何通过单击Angular Js中的按钮来更改主体背景图像?

  10. 10

    如何通过单击REACT.js中的按钮来更改表单字段?

  11. 11

    自定义弹出菜单twitter-bootstrap在工具提示上,并在单击按钮时显示

  12. 12

    JavaScript Chart.js-自定义数据格式以显示在工具提示上

  13. 13

    为工具提示方块Chart.js设置自定义颜色

  14. 14

    设置工具提示方块Chart.js的自定义颜色

  15. 15

    Chart.js自定义工具提示模板索引

  16. 16

    chart.js条形图上的自定义工具提示

  17. 17

    如何在画布内的Fabric JS图像上添加文本框弹出窗口(jQuery工具提示或类似内容)?

  18. 18

    在 Chart.js v2 圆环图工具提示中显示所有值

  19. 19

    通过单击图表Chart js + react打印列表

  20. 20

    如何通过单击链接在屏幕上打开框并在JS中单击外部时将其隐藏

  21. 21

    如何仅通过Fabric.js单击实际内容来选择对象

  22. 22

    如何通过单击d3.js图来调用Ajax

  23. 23

    如何通过单击选择元素(Vue.js)的选项项来触发操作?

  24. 24

    通过JS单击所有按钮

  25. 25

    如何通过单击单选按钮切换标签的类别。需要Vanilla JS而不是JQuery

  26. 26

    Highcharts-如何在3D散点图上的点工具提示(弹出窗口)中设置自定义内容,或如何自定义点工具提示信息?

  27. 27

    如何通过单击我的网站页面上的按钮来调用Crossrider“ background.js”中声明的javascript函数?

  28. 28

    如何通过使用JS / Jquery单击同一按钮来重复一段html代码10次?

  29. 29

    如何自定义单击为双击?js

热门标签

归档