Canvasjs:根据屏幕尺寸的不同设置

Canvasjs:根据屏幕尺寸的不同设置

问题描述:

我使用CanvasJs作为条形图,但我希望根据屏幕尺寸进行不同的设置。Canvasjs:根据屏幕尺寸的不同设置

例如,我想将标签完全隐藏在屏幕< 480px的axisY上。如何才能做到这一点?

似乎媒体查询和CSS不能用于自定义图表。

下面是一个例子:

<script type="text/javascript"> 
    window.onload = function() { 
     var chart = new CanvasJS.Chart("chartContainer", { 
      title: { 
       text: "Understanding Labels" 
      }, 
      axisY: { 
       labelFontSize: 20 
      }, 
      axisX: { 
       labelAngle: -30 
      }, 
      data: [ 
      { 
       type: "column", 
       dataPoints: [ 
       { y: 10, label: "Apples" }, 
       { y: 15, label: "Mangos" }, 
       { y: 25, label: "Oranges" }, 
       { y: 30, label: "Grapes" }, 
       { y: 28, label: "Bananas" } 
       ] 
      } 
      ] 
     }); 

    chart.render(); 
    } 
</script> 

我尝试过这样的事情,这显然行不通:

axisY: { 
    labelFormatter: function(e) { 
    if ($(window).width() < 480) { 
     return ""; 
    }, 
    }, 
}, 

可以定义axisY对象之外labelFormatter功能。

axisY: { 
    labelFormatter: axisYLabels, 
}, 

您可以根据窗口的宽度修改axisY的标签。

function axisYLabels(e) { 
    if ($(window).width() < 480) { 
     return ""; 
    } else { 
     return e.value; 
    } 
} 

您可以在这里看到一个工作fiddle

+0

辉煌,谢谢。但是当屏幕宽度超过480像素时,如何显示初始标签值?此时函数返回的是索引号“e.value”,而不是标签文本。看到这里的例子:[链接](http://jsfiddle.net/amp7nms1/1/) – Meek

+0

返回** e.label **,而这将做到这一点。 – Beevk

+0

太棒了,谢谢。 – Meek