2016-09-14 7 views
1

私は今かなり長い間インターネットを見てきましたが、答えを見つけることができません。私はかなりWeb開発には新しく、CSS/htmlとjavascriptを学ぼうとしています。cssとjavascriptを使用して円弧セグメントからなる円を作成するにはどうすればよいですか?

私は12個のセグメントからなる円を作成したいと思います。また、各セグメントを制御したいと考えています(つまり、色を自由に変えることができます。セグメント2はその後青色に変わる)。

私はこれに似た外観を実現しようとしている:

circle broken into segments

各セグメントは、最初は白で、指定された場合にのみ色が変わります。

誰かがこれを達成するための最善の方法を正しい方向に向けることができますか?

+0

すでにスレッドがあなたの質問には解決策がありますhttp://stackoverflow.com/questions/14184494/segments-in-a-circle-using-css3 – kkreft

+0

@kkreft私はそれを見ましたが、スライスを作成しようとしていません - むしろ、私は円弧を制御したいです – blazerix

+0

http://stackoverflow.com/questions/14383088/how-to-create-a-certain-configuration-given-below-in-html 私も上記の質問を見ましたが、解決策はありませんでした。そのユーザーは私とまったく同じ問題を抱えています – blazerix

答えて

0

ChartJSのドーナツチャートを使用できます。ドーナツを12の等しいデータグループに分割するようにしてください(私の例では、すべての12のデータポイントに対して1を使用します)。これにより、すべて同じサイズになります。次に、色を個別に制御し、後でチャートを更新することができます。

https://jsfiddle.net/8t8tmc0q/

必要HTML:

<canvas id="myChart" width="400" height="400"></canvas> 

とJavaScript:

Chart.defaults.global.legend.display = false; 
var ctx = document.getElementById("myChart"); 
var myChart = new Chart(ctx, { 
    type: 'doughnut', 
    data: { 
    labels: ['1','2','3','4','5','6','7','8','9','10','11','12'], 
    datasets: [{ 
     data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 
     backgroundColor: [ 
     'white', 
     'white', 
     'white', 
     'white', 
     'white', 
     'white', 
     'white', 
     'white', 
     'white', 
     'white', 
     'white', 
     'white' 
     ], 
     borderColor: 'black', 
     borderWidth: 1 
    }] 
    } 
}); 

その後、色を更新するために、あなたはちょうどあなたが更新したい部分を指定し、使用myChart.update()変更を描画する関数:

myChart.data.datasets[0].backgroundColor[5] = 'red' 
myChart.update(); 
関連する問題