Ich versuche, ein Kreisdiagramm mit SVG und einige Tricks zu bauen.SVG-Kreis hat eine Lücke
.pie {
border-radius: 50%;
transform: rotate(-90deg);
}
.pie .background {
fill: none;
stroke: #eaeaea;
stroke-width: 3;
stroke-dasharray: 100 100;
}
.pie .chart {
fill: none;
stroke: #f73319;
stroke-width: 3;
stroke-dasharray: 0 100;
animation: 2s linear slice;
animation-fill-mode: forwards
}
@keyframes slice {
to {
stroke-dasharray: 75 100;
}
}
<svg viewBox="0 0 64 64" class="pie">
<circle class="background" r="25%" cx="50%" cy="50%"></circle>
<circle class="chart" r="25%" cx="50%" cy="50%"></circle>
</svg>
Der Code ist recht einfach: Ich verwende stroke-dasharray
, um einen Strich zu haben, der den ganzen Kreis abdeckt und angepasst werden kann, um ein Stück zu machen. Aus irgendeinem Grund "schließt" jedoch keiner der Browser den Kreis.
Wenn Sie das Kreisdiagramm %
anpassen möchten, können Sie die erste Zahl in
stroke-dasharray: 75 100;
Die zweite Zahl, die Lücke zwischen verschiedenen Striche angibt. Der Grund ist es bei 100
ist, weil es mit dem Radius des Kreises gleich ist, nämlich:
radius * width * 2 * pi
= 0.25 * 64 * 2 * pi
= 100.53
dass das, was die Arbeit ganzen Kreisdiagramm Sache machen wird. ohne es ist es nur ein Kreis – cmplieger