/ js.svg
js.svg
 1  <svg xmlns="http://www.w3.org/2000/svg" width="200" height="100">
 2    <style>
 3      .fancy { fill: orange; stroke: black; stroke-width: 2; }
 4      .glow { filter: url(#glow); }
 5    </style>
 6  
 7    <defs>
 8      <filter id="glow">
 9        <feGaussianBlur stdDeviation="3" result="blur"/>
10        <feMerge>
11          <feMergeNode in="blur"/>
12          <feMergeNode in="SourceGraphic"/>
13        </feMerge>
14      </filter>
15    </defs>
16  
17    <circle id="c1" cx="50" cy="50" r="30" class="fancy"/>
18    <rect id="r1" x="100" y="30" width="60" height="40" class="fancy"/>
19  
20    <script type="application/ecmascript"><![CDATA[
21      const f = Math.random() * 10 + 10; // initial speed
22      const delta = 0.3;
23      const start = Date.now();
24      const c = document.getElementById('c1');
25      const r = document.getElementById('r1');
26  
27      function update() {
28        const t = (Date.now() - start) / 1000; // seconds
29        const s = f * Math.exp(-delta * t);
30        const i = Math.floor(s) % 2;
31  
32        if (i === 0) {
33          c.setAttribute('class', 'fancy glow');
34          r.setAttribute('class', 'fancy');
35        } else {
36          c.setAttribute('class', 'fancy');
37          r.setAttribute('class', 'fancy glow');
38        }
39  
40        if (s > 0.1) requestAnimationFrame(update);
41      }
42  
43      update();
44    ]]></script>
45  </svg>