Как я уже говорил, вы можете вращать элемент преобразования svg: rotate (-90deg). В качестве альтернативы вы можете вращать круг. Также вы можете использовать путь вместо круга и сделать его начало сверху. Если вы хотите использовать путь, это то, как вы это делаете:
В этом случае путь начинается сверху M60,4
Далее следует ар c, где оба радиуса равны 56. Первый ар c заканчивается в 60,116. За секундой следует c A56,56,0 0 1 60,4
и, наконец, вы закрываете путь z
Для circumference
вам не нужно знать радиус. Вы можете сделать var circumference = circle.getTotalLength();
, где getTotalLength
- это метод, который возвращает общую длину пути.
var circle = document.querySelector('path');
var circumference = circle.getTotalLength();
circle.style.strokeDasharray = circumference;
circle.style.strokeDashoffset = circumference;
function setProgress(percent) {
var offset = circumference - percent / 100 * circumference;
circle.style.strokeDashoffset = offset;
}
setProgress(60);
<svg class="progress-ring" width="120" height="120">
<path fill="none" class="progress-ring__circle" stroke="black" stroke-linecap="round" stroke-width="8" d="M60,4A56,56,0 0 1 60,116A56,56,0 0 1 60,4z" />
</svg>