{"product_id":"f-one-rocket-wing-crossover","title":"F-One ROCKET WING CROSSOVER","description":"\u003ch3\u003eThe Quiver Killer\u003c\/h3\u003e\u003chr style=\"max-width: 600px; margin: 1rem 0 !important;\"\u003eThe new ROCKET WING CROSSOVER is F-ONE’s latest board for riders who want it all in one board: glide, maneuverability, stability and versatility. With its refined, slightly longer and narrower shape, this board is designed to deliver maximum efficiency and performance, offering a ride that’s sure to win over wing foilers of all levels.\n\u003cul\u003e\n    \u003cli\u003eIdeal as a one-board quiver\u003c\/li\u003e\n    \u003cli\u003eAll-terrain versatility – freeride, wave, flat water, downwinders\u003c\/li\u003e\n    \u003cli\u003eLong and narrow shape for high efficiency, yet with enough width and volume for plenty of stability\u003c\/li\u003e\n    \u003cli\u003eGreat glide for take-offs and minimal drag on touchdowns\u003c\/li\u003e\n\u003c\/ul\u003e\u003cstyle\u003e\n    .progress-container {\n        display: flex;\n        justify-content: space-between;\n        background-color: #f9f9f9;\n        padding: 40px 25px 60px 25px;\n    }\n    .progress-ring {\n        width: 150px;\n        height: 150px;\n        position: relative;\n        text-align: center;\n    }\n    .progress-ring circle {\n        fill: transparent;\n        stroke: #ff6800;\n        stroke-width: 15;\n        transform: rotate(-90deg);\n        transform-origin: 50% 50%;\n        transition: stroke-dashoffset 0.5s;\n    }\n    .progress-ring .ring-background {\n        fill: transparent;\n        stroke: #ccc;\n        stroke-width: 15;\n        transform: rotate(-90deg);\n        transform-origin: 50% 50%;\n    }\n    .progress-text {\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        font-size: 24px;\n    }\n    .progress-title {\n        font-size: 20px;\n        color: black;\n        margin-top: 10px;\n    }\n    @media (max-width: 768px) {\n        .progress-container {\n            flex-direction: column;\n            align-items: center;\n        }\n        .progress-ring {\n            margin-bottom: 50px;\n        }\n    }\n\u003c\/style\u003e\n\u003ch3\u003ePERFORMANCE\u003c\/h3\u003e\n\u003chr style=\"border: none; border-top: 1px solid #B3B3B3; width: 30%; margin: 0 0 20px 0;\"\u003e\n\n\u003cdiv class=\"progress-container\"\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring1\" data-progress=\"75\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003eAccessibility\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress1\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring2\" data-progress=\"75\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003eLightwind\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress2\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring3\" data-progress=\"100\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003eFreeride\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress3\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring4\" data-progress=\"75\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003eCarving\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress4\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    document.addEventListener(\"DOMContentLoaded\", function() {\n        function animateProgress(ringId, from, to, duration) {\n            const ring = document.querySelector(`#ring${ringId} .ring`);\n            const text = document.getElementById(`progress${ringId}`);\n            const title = document.querySelector(`#ring${ringId} .progress-title`);\n            const circumference = 2 * Math.PI * 65; \/\/ Hardcoding the radius as 65 for this example\n            const increment = (to - from) \/ (duration * 60);\n            let current = from;\n\n            function update() {\n                if ((increment \u003e 0 \u0026\u0026 current \u003c to) || (increment \u003c 0 \u0026\u0026 current \u003e to)) {\n                    const offset = circumference - (current \/ 100) * circumference;\n                    ring.style.strokeDasharray = `${circumference} ${circumference}`;\n                    ring.style.strokeDashoffset = offset;\n                    text.textContent = `${Math.round(current)}%`;\n\n                    current += increment;\n                    requestAnimationFrame(update);\n                } else {\n                    const offset = circumference - (to \/ 100) * circumference;\n                    ring.style.strokeDashoffset = offset;\n                    text.textContent = `${to}%`;\n                }\n            }\n\n            update();\n        }\n\n        function handleIntersection(entries, observer) {\n            entries.forEach((entry) =\u003e {\n                if (entry.isIntersecting) {\n                    const ringId = entry.target.id.replace('ring', '');\n                    const from = 0;\n                    const to = parseInt(entry.target.getAttribute('data-progress'), 10);\n                    animateProgress(ringId, from, to, 2);\n                    observer.unobserve(entry.target);\n                }\n            });\n        }\n\n        const rings = document.querySelectorAll('.progress-ring');\n\n        const observer = new IntersectionObserver(handleIntersection, {\n            root: null,\n            rootMargin: '0px',\n            threshold: 0.2 \/\/ Adjust this threshold as needed\n        });\n\n        rings.forEach((ring) =\u003e {\n            observer.observe(ring);\n        });\n    });\n\u003c\/script\u003e","brand":"F-One","offers":[{"title":"65L","offer_id":50619932574033,"sku":"SS25-77258-0801-5.2","price":1519.0,"currency_code":"EUR","in_stock":false},{"title":"74L","offer_id":50619932606801,"sku":"SS25-77258-0801-5.4","price":1539.0,"currency_code":"EUR","in_stock":false},{"title":"83L","offer_id":50619932639569,"sku":"SS25-77258-0801-5.6","price":1559.0,"currency_code":"EUR","in_stock":true},{"title":"93,5L","offer_id":50619932672337,"sku":"SS25-77258-0801-5.8","price":1599.0,"currency_code":"EUR","in_stock":true},{"title":"105L","offer_id":50619932705105,"sku":"SS25-77258-0801-5.10","price":1639.0,"currency_code":"EUR","in_stock":true},{"title":"119L","offer_id":50619932737873,"sku":"SS25-77258-0801-6.1","price":1679.0,"currency_code":"EUR","in_stock":true},{"title":"133L","offer_id":50619932770641,"sku":"SS25-77258-0801-6.4","price":1719.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0512\/0838\/8795\/files\/rocket-wing-crossover-650x650.png?v=1743250798","url":"https:\/\/www.billy.be\/products\/f-one-rocket-wing-crossover","provider":"Billy.be","version":"1.0","type":"link"}