2016-09-05 20 views
5

Używam ChartJS do wyświetlania niektórych danych, ale nie renderuję elementu canvas poprawnie w IE, Firefox i Safari.Płaszczyzna ChartJS nie wyświetla kolorów rgba w IE, Safari i Firefox

Domyślam się, że właściwość koloru tła nie ma żadnego z używanych prefiksów dla drugiej przeglądarki, ponieważ działa ona poprawnie w przeglądarce Chrome.

Ktoś jeszcze miał ten problem?

Chrome:

enter image description here

Firefox, Safari i IE: enter image description here

Kod:

window.onload = function() { 
     var ctx = document.getElementById("canvas"); 
     var myChart = new Chart(ctx, { 
      type: 'line', 
      data: { 
       labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"], 
       datasets: [{ 
        label: '# of Value', 
        data: [12, 19, 3, 5, 2, 3, 10, 29], 
        backgroundColor: [ 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)' 
        ], 
        borderColor: [ 
         'rgba(33, 145, 81, 1)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)', 
         'rgba(33, 145, 81, 0.2)' 
        ], 
        borderWidth: 1 
       }] 
      }, 
      options: { 
       scales: { 
        yAxes: [{ 
         ticks: { 
          beginAtZero:true 
         } 
        }] 
       } 
      } 
     }); 
    }; 
    }); 
+0

elementów tablicy danych wewnątrz powinny być łańcuchami: 'danych: [ "12", "19", "3",„5 "," 2 "," 3 "," 10 "," 29 "]' –

Odpowiedz

6

Problemem jest to, że jesteś dając backgroundColor Właściwość tablica z Color zamiast jednego.

Wykres liniowy z właściwością fill ustawioną na true musi mieć tylko jedną wartość: Color, inaczej będzie łamać się tak, jak na wykresie.


Więc po prostu trzeba zmienić:

backgroundColor: [ 
    'rgba(33, 145, 81, 0.2)', 
    'rgba(33, 145, 81, 0.2)', 
    'rgba(33, 145, 81, 0.2)', 
    'rgba(33, 145, 81, 0.2)', 
    'rgba(33, 145, 81, 0.2)', 
    'rgba(33, 145, 81, 0.2)', 
    'rgba(33, 145, 81, 0.2)', 
    'rgba(33, 145, 81, 0.2)' 
], 

Do:

backgroundColor: 'rgba(33, 145, 81, 0.2)', 

A to daje this result niezależnie od używanej przeglądarki.
(badanie przeprowadzono na IE 11 i Firefox 48)

enter image description here

+1

Idealnie! Dziękuję Ci. – andromedainiative

+0

Dzięki za odpowiedź. Czy jest to wspomniane w dokumentach? Miałem te same problemy i moje przykłady pochodzą bezpośrednio ze strony chat.js. Nie wiesz, dlaczego podali przykłady, które nie działają w pełni w przypadku wszystkich przeglądarek? – Scott

+0

@Scott Nie jest to wspomniane w dokumentach, ale nie pamiętam żadnego przykładu mieszania wykresów liniowych i kilku kolorów, jak pytanie zadawane. Który przykład wykorzystałeś? – tektiv