Here's a little demo for a two-step wizard. I've made it using SVG and CSS animation.
SVG consists of two paths:
- one that serves as a background and
- one that serves as a moving line.
The biggest challenge was to calculate the stroke-dasharray
. I have used getTotalLength()
function to get the overall length like in my previous demo. The length is 1640
. Since I knew the middle line's length is 400
, getting the length of the circle was quite straightforward:
circle = (overall - line) / 2 circle = (1640 - 400) / 2 circle = 620
The next step was to set the stroke-dashoffset
. Again, I had to use a little bit of math:
offset = overall - circle offset = 1640 - 620 offset = 1020
Finally, I have used the CSS Animation to make the animation:
.steps__path { stroke-dasharray: 1640; stroke-dashoffset: 1020; animation: line 5s ease-in-out infinite alternate-reverse; } @keyframes line { 100% { stroke-dashoffset: -1020; } }
I decided to set the animation-iteration-count
to infinite
and the animation-direction
to alternate-reverse
to make the loop animation.
I have used a modified version on my site, check it out.
Top comments (0)