Nếu bạn muốn làm một thanh tiến trình hình tròn đơn giản, bài viết này sẽ giúp bạn.

Làm thanh tiến trình hình tròn chỉ với SVG và CSS

HTML

HTML đơn giản như sau.

<svg width="250" height="250" viewBox="0 0 250 250" class="circular-progress">
    <circle class="bg"></circle>
    <circle class="fg"></circle>
</svg>

CSS

Thêm CSS như sau.

.circular-progress {
    --size: 250px;
    --half-size: calc(var(--size) / 2);
    --stroke-width: 20px;
    --radius: calc((var(--size) - var(--stroke-width)) / 2);
    --circumference: calc(var(--radius) * pi * 2);
    --dash: calc((var(--progress) * var(--circumference)) / 100);
    animation: progress-animation 5s linear 0s 1 forwards;
}

.circular-progress circle {
    cx: var(--half-size);
    cy: var(--half-size);
    r: var(--radius);
    stroke-width: var(--stroke-width);
    fill: none;
    stroke-linecap: round;
}

.circular-progress circle.bg {
    stroke: #ddd;
}

.circular-progress circle.fg {
    transform: rotate(-90deg);
    transform-origin: var(--half-size) var(--half-size);
    stroke-dasharray: var(--dash) calc(var(--circumference) - var(--dash));
    transition: stroke-dasharray 0.3s linear 0s;
    stroke: #5394fd;
}

@property --progress {
    syntax: "<number>";
    inherits: false;
    initial-value: 0;
}

@keyframes progress-animation {
    from {
        --progress: 0;
    }
    to {
        --progress: 100;
    }
}

Chúc các bạn thành công!

5/5 (1 bình chọn)