JSFiddle - React, Tailwind, and code Playground
by so 87
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/vivus/0.4.4/vivus.min.js"></script>
<div class="back-red">
<svg id="my-svg" width="200" height="200" viewBox="0 0 200 200"></svg>
</div>
<p id="state"><p>
CSS
.back-red {
background-color:red;
width:200px;
height:200px;
}
.circle {
fill: transparent;
stroke: black;
stroke-width: 3px;
}
JavaScript
function runAnim() {
$('#state').text('start')
const container = document.getElementById('my-svg')
const ns = 'http://www.w3.org/2000/svg'
const circle = document.createElementNS(ns, 'circle')
const color = `rgba(200,255,255,1)`
circle.setAttribute('cx', 100)
circle.setAttribute('cy', 100)
circle.setAttribute('r', 50 - 4)
circle.setAttribute('class', 'circle')
circle.style.stroke = color
container.appendChild(circle)
const opt = {
type: 'scenario-sync',
duration: 70,
forceRender: false,
animTimingFunction:Vivus.EASE,
start: 'autostart',
}
new Vivus('my-svg', opt, ()=>{ $('#state').text('end') })
}
$( function ()
{
$( "body" ).hide();
$.when(
$( "body" ).fadeIn( 2000 )
).done( function ()
{
runAnim();
} );
} );