# blockenberg/2.0.7/blocks/milestone/frontend.js

Blockenberg — 600+ Advanced Gutenberg Blocks &amp; AI Agent for WordPress Block Editor, version 2.0.7. 29 lines.

- Page: https://pluginprobe.com/plugins/blockenberg/2.0.7/code/blocks/milestone/frontend.js
- Raw: https://pluginprobe.com/plugins/blockenberg/2.0.7/raw/blocks/milestone/frontend.js
- Modified: 2026-03-06T12:32:40+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/blockenberg/2.0.7/code/blocks/milestone/frontend.js#L10-L20`.

```javascript
( function () {
  document.querySelectorAll( '.bkml-wrap' ).forEach( function ( wrap ) {
    if ( wrap.dataset.animate !== '1' ) return;
    var ring = wrap.querySelector( '.bkml-ring' );
    if ( !ring ) return;

    var current   = parseFloat( wrap.dataset.current ) || 0;
    var goal      = parseFloat( wrap.dataset.goal ) || 100;
    var pct       = Math.min( 1, current / goal );
    var r         = parseFloat( ring.getAttribute( 'r' ) );
    var circ      = 2 * Math.PI * r;
    var finalOff  = circ * ( 1 - pct );

    /* Start from fully offset */
    ring.style.strokeDashoffset = circ;

    var observed = false;
    var io = new IntersectionObserver( function ( entries ) {
      entries.forEach( function ( entry ) {
        if ( entry.isIntersecting && !observed ) {
          observed = true;
          ring.style.strokeDashoffset = finalOff;
        }
      } );
    }, { threshold: 0.4 } );
    io.observe( wrap );
  } );
} )();

```
