{"product_id":"f-one-swing-v5","title":"F-One SWING V5","description":"\u003ch3\u003eCatch and release\u003c\/h3\u003e\u003chr style=\"max-width: 600px; margin: 1rem 0 !important;\"\u003eRenowned for its lightness and maneuverability, the SWING excels in waves and freefly, delivering exceptional performance in complete control and evenness. Thanks to its completely reworked design and reduced wingspan, this fifth SWING perfectly balances stability, ease of use, comfort, control and smooth power delivery.\n\u003cul\u003e\n    \u003cli\u003eNew design and reduced wingspan for lightness, maneuverability, and excellent planing start\u003c\/li\u003e\n    \u003cli\u003eSweep Control Panel for ideal trailing edge tension control\u003c\/li\u003e\n    \u003cli\u003eStability and comfort in all situations\u003c\/li\u003e\n    \u003cli\u003eControlled speed and acceleration for an accessible performance and intuitive ride\u003c\/li\u003e\n    \u003cli\u003eExcellent freefly\u003c\/li\u003e\n    \u003cli\u003eOptimized strap position for compatibility of a single Boom with several sizes and models in the entire wing range\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\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\"\u003eFreestyle\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=\"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\"\u003eSurf\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\"\u003eFreefly\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\"\u003eSpeed\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":"2.0m \/ Flame\/Onyx","offer_id":50619936768337,"sku":"SS25-77251-0801-2.0A","price":957.99,"currency_code":"EUR","in_stock":false},{"title":"2.0m \/ Onyx\/Mint","offer_id":50619936801105,"sku":"SS25-77251-0801-2.0B","price":957.99,"currency_code":"EUR","in_stock":false},{"title":"2.0m \/ Lilac\/Onyx","offer_id":52298026189137,"sku":"SS26-77251-0801-2.0C","price":999.0,"currency_code":"EUR","in_stock":false},{"title":"2.5m \/ Flame\/Onyx","offer_id":50619936833873,"sku":"SS25-77251-0801-2.5A","price":987.99,"currency_code":"EUR","in_stock":false},{"title":"2.5m \/ Onyx\/Mint","offer_id":50619936866641,"sku":"SS25-77251-0801-2.5B","price":987.99,"currency_code":"EUR","in_stock":false},{"title":"2.5m \/ Lilac\/Onyx","offer_id":52298026221905,"sku":"SS26-77251-0801-2.5C","price":1059.0,"currency_code":"EUR","in_stock":false},{"title":"3.0m \/ Flame\/Onyx","offer_id":50619936899409,"sku":"SS25-77251-0801-3.0A","price":1017.99,"currency_code":"EUR","in_stock":false},{"title":"3.0m \/ Onyx\/Mint","offer_id":50619936932177,"sku":"SS25-77251-0801-3.0B","price":1017.99,"currency_code":"EUR","in_stock":false},{"title":"3.0m \/ Lilac\/Onyx","offer_id":52298026254673,"sku":"SS26-77251-0801-3.0C","price":1017.99,"currency_code":"EUR","in_stock":true},{"title":"3.5m \/ Flame\/Onyx","offer_id":50619936964945,"sku":"SS25-77251-0801-3.5A","price":1047.99,"currency_code":"EUR","in_stock":false},{"title":"3.5m \/ Onyx\/Mint","offer_id":50619936997713,"sku":"SS25-77251-0801-3.5B","price":1047.99,"currency_code":"EUR","in_stock":false},{"title":"3.5m \/ Lilac\/Onyx","offer_id":52298026287441,"sku":"SS26-77251-0801-3.5C","price":1047.99,"currency_code":"EUR","in_stock":true},{"title":"4.0m \/ Flame\/Onyx","offer_id":50619937030481,"sku":"SS25-77251-0801-4.0A","price":1097.99,"currency_code":"EUR","in_stock":true},{"title":"4.0m \/ Onyx\/Mint","offer_id":50619937063249,"sku":"SS25-77251-0801-4.0B","price":1097.99,"currency_code":"EUR","in_stock":true},{"title":"4.0m \/ Lilac\/Onyx","offer_id":52298026320209,"sku":"SS26-77251-0801-4.0C","price":1097.99,"currency_code":"EUR","in_stock":false},{"title":"4.5m \/ Flame\/Onyx","offer_id":50619937096017,"sku":"SS25-77251-0801-4.5A","price":1137.99,"currency_code":"EUR","in_stock":true},{"title":"4.5m \/ Onyx\/Mint","offer_id":50619937128785,"sku":"SS25-77251-0801-4.5B","price":1137.99,"currency_code":"EUR","in_stock":true},{"title":"4.5m \/ Lilac\/Onyx","offer_id":52298026352977,"sku":"SS26-77251-0801-4.5C","price":1137.99,"currency_code":"EUR","in_stock":true},{"title":"5.0m \/ Flame\/Onyx","offer_id":50619937161553,"sku":"SS25-77251-0801-5.0A","price":1167.99,"currency_code":"EUR","in_stock":false},{"title":"5.0m \/ Onyx\/Mint","offer_id":50619937194321,"sku":"SS25-77251-0801-5.0B","price":1167.99,"currency_code":"EUR","in_stock":true},{"title":"5.0m \/ Lilac\/Onyx","offer_id":52298026385745,"sku":"SS26-77251-0801-5.0C","price":1167.99,"currency_code":"EUR","in_stock":true},{"title":"5.5m \/ Flame\/Onyx","offer_id":50619937227089,"sku":"SS25-77251-0801-5.5A","price":1217.99,"currency_code":"EUR","in_stock":false},{"title":"5.5m \/ Onyx\/Mint","offer_id":50619937259857,"sku":"SS25-77251-0801-5.5B","price":1217.99,"currency_code":"EUR","in_stock":false},{"title":"5.5m \/ Lilac\/Onyx","offer_id":52298026418513,"sku":"SS26-77251-0801-5.5C","price":1339.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0512\/0838\/8795\/files\/swing-29-650x650.png?v=1743688047","url":"https:\/\/www.billy.be\/products\/f-one-swing-v5","provider":"Billy.be","version":"1.0","type":"link"}