2017-05-08 19 views
1

私はCanvasJsを棒グラフに使用していますが、画面サイズに応じて異なる設定をしたいと思います。Canvasjs:画面サイズに応じて異なる設定

たとえば、ラベル480pxの場合、軸Y上にラベルを完全に隠したいとします。これはどうすればできますか?

メディアクエリと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 ""; 
    }, 
    }, 
}, 

答えて

2

をあなたはaxisYオブジェクトの外にlabelFormatterのための関数を定義することができます。

axisY: { 
    labelFormatter: axisYLabels, 
}, 

ここで、axisYのラベルは、ウィンドウの幅に基づいて変更できます。

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

fiddleが表示されます。

+0

賢い、ありがとう。しかし、画面の幅が480ピクセルを超えると、どのように初期ラベル値を表示するのですか?現在、この関数はラベル番号ではなくインデックス番号である 'e.value'を返します。ここの例を参照してください:[link](http://jsfiddle.net/amp7nms1/1/) – Meek

+0

return ** e.label **代わりに、そのトリックを行います。 – Beevk

+0

素晴らしいです、ありがとうございます。 – Meek

関連する問題