{"title":"Mini S","description":"","products":[{"product_id":"miofive-mini-s-4k-dash-cam","title":"Miofive Mini S 4K Dash Cam, Speed Camera Alert(No SD Card)(UK)","description":"\u003cstyle type=\"text\/css\"\u003e\n    .description-content {\n        margin: 0px auto;\n        padding: 0px;\n    }\n\n    .description-item {\n        width: 100%;\n        margin: 0px auto;\n        padding: 0px;\n    }\n\n    .description-item img {\n        width: 100%;\n    }\n\n    .description-scroll {\n        position: relative;\n        margin: 0px auto;\n        padding: 0px;\n    }\n\n    .description-scroll-btn {\n        top: 50%;\n        position: absolute;\n        padding: 10px;\n        cursor: pointer;\n        width: 42px;\n        height: 42px;\n        border-radius: 50%;\n        background-color: rgb(247, 247, 247);\n        border: 1px solid var(--icon);\n        transform: translateY(-50%);\n        border-color: transparent;\n        z-index: 1;\n    }\n\n    .description-scroll-btn-left {\n        left: 0;\n        margin-left: -0.2rem;\n        transform: rotate(90deg) translateX(-0.15rem);\n    }\n\n    .description-scroll-btn-left:hover {\n        transform: rotate(90deg) translateX(-0.15rem) scale(0.98);\n    }\n\n    .description-scroll-btn-right {\n        right: 0;\n        margin-right: -0.2rem;\n        transform: rotate(-90deg) translateX(0.15rem);\n    }\n\n    .description-scroll-btn-right:hover {\n        transform: rotate(-90deg) translateX(0.15rem) scale(0.98);\n    }\n\n    .description-dot-container {\n        position: absolute;\n        bottom: 20px;\n        width: 100%;\n        display: flex;\n        justify-content: center;\n    }\n\n    .description-dot {\n        background-color: #fff;\n        \/* 圆点颜色 *\/\n        border: 1px solid #000;\n        \/* 边框 *\/\n        padding: 5px;\n        \/* 圆点大小 *\/\n        border-radius: 50%;\n        \/* 设置为圆形 *\/\n        margin: 0 5px;\n        \/* 圆点之间的间距 *\/\n        cursor: pointer;\n        \/* 鼠标悬停时显示手形图标 *\/\n        outline: none;\n        \/* 点击时不显示轮廓 *\/\n    }\n\n    .description-dot.active {\n        background-color: #D72735;\n    }\n\n    .description-container {\n        padding: 0px;\n        margin: 0px;\n        display: flex;\n        overflow-x: auto;\n        scroll-snap-type: x mandatory;\n        scroll-behavior: smooth;\n        scrollbar-width: none;\n        -ms-overflow-style: none;\n    }\n\n    .description-container::-webkit-scrollbar {\n        display: none;\n    }\n\n    .description-wrapper {\n        position: relative;\n        flex: 0 0 100%;\n        width: 100%;\n        display: flex;\n        scroll-snap-align: start;\n        scroll-snap-stop: always;\n    }\n\n    .description-wrapper img {\n        width: 100%;\n    }\n\n    .description-wrapper h3 {\n        margin: 0px;\n        padding: 0px;\n        font-size: 20px;\n        font-weight: 700;\n        color: #232323;\n        margin-bottom: 15px;\n    }\n\n    .description-wrapper p {\n        margin: 0px;\n        padding: 0px;\n        font-size: 14px;\n        margin-bottom: 8px;\n    }\n\n    .description-wrapper-item {\n        flex: 1;\n    }\n\n    .description-wrapper-text {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        padding-left: 5%;\n        padding-right: 5%;\n    }\n\n    .description-wrapper-header {\n        display: flex;\n        padding: 10px 0 12px 100px;\n        margin: 0px;\n        align-items: center;\n        justify-content: center;\n        background-color: #3A3E48;\n        overflow-x: auto;\n        overflow-y: hidden;\n        white-space: nowrap;\n        scroll-snap-align: start;\n        scroll-snap-stop: always;\n        scrollbar-width: none;\n        -ms-overflow-style: none;\n    }\n\n    .description-wrapper-header::-webkit-scrollbar {\n        display: none;\n    }\n\n    .description-header-button {\n        color: white;\n        text-align: center;\n        font-size: 20px;\n        font-weight: 700;\n        margin-right: 80px;\n        padding: 5px 0 5px 0;\n        background-color: transparent;\n    }\n\n    .description-header-button.active {\n        border-bottom: 3px solid #fff;\n    }\n\n    .description-specification-item {\n        display: flex;\n        display: -ms-flex;\n        flex-wrap: wrap;\n        width: 100%;\n    }\n\n    .description-column {\n        position: relative;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 30%;\n    }\n\n    .description-column-specifications {\n        position: relative;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 40%;\n    }\n\n    .description-column-mb {\n        position: relative;\n        width: 100%;\n    }\n\n    .description-column img {\n        width: 100%;\n    }\n\n    .description-column-title {\n        position: absolute;\n        top: 5%;\n        left: 30%;\n        margin: 0px;\n        padding: 0px;\n        font-size: 20px;\n        font-weight: 700;\n        color: #232323;\n        margin-bottom: 15px;\n    }\n\n\n    .description-title {\n        width: 100%;\n        font-size: 22px;\n        font-weight: 700;\n        color: #232323;\n        text-align: center;\n        margin-top: 20px;\n        margin-bottom: 20px;\n    }\n\n    .description-specifications {\n        position: relative;\n        width: 100%;\n    }\n\n    .description-specifications-title {\n        width: 100%;\n        font-size: 20px;\n        font-weight: 700;\n        color: #232323;\n        text-align: center;\n    }\n\n    .description-specifications-border {\n        border: 1px solid #000;\n        display: flex;\n        display: -ms-flex;\n        flex-wrap: wrap;\n        margin: 0px 3px 0px 3px;\n        padding-top: 15px;\n        padding-bottom: 15px;\n    }\n\n    .description-specifications-column {\n        position: relative;\n        width: 33.333%;\n    }\n\n    .description-specifications-column p {\n        width: 100%;\n        text-align: center;\n        font-size: 12px;\n        color: #232323;\n        margin-bottom: 35px;\n    }\n\n    .description-specifications-item {\n        position: relative;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        width: 88%;\n        margin-left: 6%;\n        margin-right: 6%;\n        border-bottom: 1px solid #232323;\n    }\n\n    .description-specifications-item-text {\n        text-align: center;\n        font-size: 14px;\n        color: #232323;\n        margin-top: 3px;\n        margin-bottom: 3px;\n    }\n\n    .description-specifications-a {\n        text-decoration: none;\n    }\n\n    .description-specifications-button {\n        width: 80%;\n        margin-top: 15px;\n        margin-left: 10%;\n        margin-bottom: 45px;\n        padding-top: 10px;\n        padding-bottom: 10px;\n        background-color: #232323;\n        color: #fff;\n        border: none;\n        border-radius: 20px;\n        font-size: 16px;\n        text-align: center;\n    }\n\n    .description-faqs-item {\n        background-color: #fafafa;\n        padding: 0px 30px 0px 30px;\n        margin: 15px 0px 15px 0px;\n    }\n\n    .description-faqs-header {\n        position: relative;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        width: 100%;\n    }\n\n    .description-faqs-header.active {\n        border-bottom: 1px solid #232323;\n    }\n\n    .description-faqs-title {\n        font-size: 18px;\n        color: #232323;\n        background-color: #fafafa;\n        text-align: left;\n        padding: 10px 0 10px 0;\n    }\n\n    .description-faqs-arrow {\n        --rotation: -180deg;\n        width: 14px;\n        height: 14px;\n        transform: rotate(var(--rotation));\n        transition: all .3s ease;\n    }\n\n    .description-faqs-header:not(.description-faqs-collapsed) .description-faqs-arrow {\n        --rotation: 0deg;\n    }\n\n    .description-faqs-collapse {\n        display: none;\n        padding-bottom: 10px;\n        transition: all .5s ease-out;\n    }\n\n    .description-faqs-collapse-text {\n        font-size: 14px;\n        margin-top: 10px;\n    }\n\n    .description-contact-us-title {\n        width: 100%;\n        font-size: 22px;\n        font-weight: 700;\n        color: #232323;\n        text-align: center;\n        margin-top: 20px;\n        margin-bottom: 20px;\n    }\n\n    .description-contact-us-text {\n        text-align: center;\n        font-size: 14px;\n        color: #232323;\n        padding: 0px 30px 0px 30px;\n        margin: 15px 0px 15px 0px;\n    }\n\n\n    @media screen and (max-width: 767px) {\n        .description-wrapper {\n            display: block;\n        }\n\n        .description-wrapper img {\n            width: 100%;\n        }\n\n        .description-wrapper-text {\n            margin-top: 30px;\n        }\n\n        .description-wrapper-header {\n            justify-content: start;\n            padding-left: 30px;\n            padding-right: 30px;\n        }\n\n        .description-column {\n            width: 50%;\n        }\n\n        .description-specification-item {\n            position: relative;\n            display: block;\n        }\n\n        .description-column-title {\n            position: relative;\n            width: 100%;\n            text-align: center;\n            top: 0px;\n            left: 0px;\n            margin-bottom: 0px;\n        }\n\n        .description-faqs-title {\n            font-size: 16px;\n        }\n    }\n\u003c\/style\u003e\n\n\n\u003cdiv class=\"description-content\"\u003e\n    \n    \u003cdiv class=\"description-item\" id=\"description-item-1\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"description-item\" id=\"description-item-2\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"description-scroll\" id=\"description-item-3\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"description-scroll\" id=\"description-item-4\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"description-scroll\" id=\"description-item-5\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"description-scroll\" id=\"description-item-6\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"description-specification-item\" id=\"description-specification\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"description-item\" id=\"description-faqs\"\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n        \u003cbr\u003e\n        \u003cdiv class=\"description-contact-us-title\"\u003eCONTACT US\u003c\/div\u003e\n        \u003cdiv class=\"description-contact-us-text\"\u003eHave a question or comment? Please email us at \u003ca style=\"color: #000;\" href=\"mailto:support@miofive.com?subject=Assistance%20Required%20-%20Order%20Number:\u0026amp;body=Hi%20Miofive%20%20%0A%0A%20My%20Order%20Number%20is:%20%20%20%0A%0A%0APlease%20type%20your%20question%20below,%20and%20tell%20us%20how%20can%20we%20help%20you?\"\u003esupport@miofive.com\u003c\/a\u003e. Our dedicated customer support team is here to help and will respond within 24 hours on business days.\u003c\/div\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n    function initData() {\n        const data = {\n            item1: {\n                img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_1.webp?v=1778469148',\n                img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_1_mb.webp?v=1778469166'\n            },\n            item2: {\n                img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_2.webp?v=1778469149',\n                img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_2_mb.webp?v=1778469167'\n            },\n            item3: [\n                {\n                    title: 'Built-in GPS',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_3.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_3_mb.webp?v=1778469166'\n                },\n                {\n                    title: 'Super Night Vision',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_4.webp?v=1778469148',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_4_mb.webp?v=1778469166'\n                },\n                {\n                    title: 'Wi-Fi 6 \u0026 APP Control',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_5.webp?v=1778469148',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_5_mb.webp?v=1778469166'\n                },\n\t\t\t\t{\n                    title: 'OTA',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_6.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_6_mb.webp?v=1778469167'\n                }\n            ],\n            item4: [\n                \n                {\n\t\t\t\t\timg: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_7.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_7_mb.webp?v=1778469166'\n                },\n                {\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_8.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_8_mb.webp?v=1778469167'\n                },\n                {\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_9.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_9_mb.webp?v=1778469166'\n                }\n            ],\n            item5: [\n                {\n                    title: 'Speed Camera Alerts',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_10.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_10_mb.webp?v=1778469166'\n                },\n                {\n                    title: 'Super Capacitors',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_11.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_11_mb.webp?v=1778469166'\n                },\n                {\n                    title: 'Max Support Up To 512GB',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_12.webp?v=1778469148',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_12_mb.webp?v=1778469166'\n                }\n            ],\n            item6: [\n                {\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_13.webp?v=1778469148',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_13_mb.webp?v=1778469166'\n                },\n                {\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_14.webp?v=1778469149',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_mini_s_Description_14_mb.webp?v=1778469166'\n                }\n            ],\n            item7: [\n                {\n                    title: 'Mini S',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_Description_MiniS.jpg?v=1741747255',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_Description_MiniS_mb.jpg?v=1741747255',\n                    link: '',\n                    specifications: [\n                        '4K(3840x2160) @25fps',\n                        '-',\n                        '-',\n                        '2.4G',\n                        'Bluetooth 4.2',\n                        'NOT Included'\n                    ]\n                },\n                {\n                    title: 'Mini 2',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_Description_Mini2.jpg?v=1741747255',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_Description_Mini2_mb.jpg?v=1741747255',\n                    link: '\/products\/mini-2-uk',\n                    specifications: [\n                        '2K(2560x1440) @30fps',\n                        '1920x1080P @25fps',\n                        '-',\n                        '2.4G',\n                        'Bluetooth 4.2',\n                        'NOT Included'\n                    ]\n                },\n                {\n                    title: 'S1',\n                    img: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_S_Description_S1.jpg?v=1739441641',\n                    img_mb: 'https:\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/UK_S_Description_S1_mb.jpg?v=1739441641',\n                    link: '\/products\/s1-uk',\n                    specifications: [\n                        '4K(3840x2160) @30fps',\n                        '-',\n                        '3\" IPS',\n                        '2.4G \u0026 5G',\n                        'Bluetooth 4.2',\n                        'NOT Included'\n                    ]\n                }\n            ],\n            item8: [\n                {\n                    title: \"How does the dash cam start working?\",\n                    content: [\n                        \"When using it for the first time, simply power on the dash cam and follow the instructions in the manual to connect the app and activate the device. After the initial setup, the dash cam will automatically start recording whenever it is powered on.\"\n                    ]\n                },\n                {\n                    title: \"Why is the video quality of my dash cam unclear?\",\n                    content: [\n                        \"To ensure smoother video playback, the videos viewed on the app or the dash cam screen are compressed and may not represent the original video quality. Please download the video to your phone's gallery or computer for better clarity.\"\n                    ]\n                },\n                {\n                    title: \"I want to use the parking monitoring function. Do I have to buy a separate hard wire kit?\",\n                    content: [\n                        \"Yes, the hardwire kit enables the Mini S Dash Cam's parking monitoring mode. The hard-wire kit is not included; you need to purchase it separately.\"\n                    ]\n                },\n                {\n                    title: \"Do I need to buy an SD card to use this dash cam? Which memory card is recommended?\",\n                    content: [\n                        \"This dash cam supports memory cards from 32 GB to 512 GB. The SD card is NOT INCLUDED. If you need to purchase a new one, we recommend a U3 Class 10 microSD card from Miofive.\"\n                    ]\n                },\n                {\n                    title: \"How does the dash cam format the memory card?\",\n                    content: [\n                        \"Open the Miofive app, go to My Device → Quick Settings → More → Format Memory Card.\",\n                        \"Please be aware that formatting the memory card will erase all existing data. Ensure that you have backed up important files before proceeding with the forma process.\"\n                    ]\n                }\n            ]\n        };\n        return data;\n    }\n\n    const descriptionData = initData();\n    \/\/规格数据\n    const specificationData = descriptionData.item7;\n    const specificationTitle = \"Miofive Dashcam\";\n    const specificationList = [\n        'Front Resolution',\n        'Rear Resolution',\n        'Display',\n        'Wi-Fi',\n        'Bluetooth',\n        'SD Card（Included）',\n        'Super Capacitor'\n    ];\n\n    addItem1();\n    addItem2();\n    addItem3();\n    addItem4();\n    addItem5();\n    addItem6();\n    addSpecification();\n    addFAQs();\n\n    function addItem1() {\n\t\taddSinglePictureItem(\"description-item-1\", descriptionData.item1);\n    }\n\n    function addItem2() {\n\t\taddSinglePictureItem(\"description-item-2\", descriptionData.item2);\n    }\n\n    function addItem3() {\n\t\taddScrollHeaderItem(\"3\", descriptionData.item3);\n    }\n\n    function addItem4() {\n\t\taddScrollItem(\"4\", descriptionData.item4);\n    }\n\n    function addItem5() {\n\t\taddScrollHeaderItem(\"5\", descriptionData.item5);\n    }\n\n    function addItem6() {\n\t\taddScrollItem(\"6\", descriptionData.item6);\n    }\n\t\n\t\/\/单张预览图\n    function addSinglePictureItem(containerID, item) {\n        const descriptionItem = document.getElementById(containerID);\n        descriptionItem.innerHTML = addPicture(item);\n    }\n\t\n\t\/\/标题滑动图\n    function addScrollHeaderItem(descriptionId, list) {\n        const headers = [];\n        let headerCount = list.length;\n        let selectIndex = 0;\n\n        const descriptionItem = document.getElementById('description-item-' + descriptionId);\n        let option = previousButton('scroll-' + descriptionId + '-previous')\n            + nextButton('scroll-' + descriptionId + '-next');\n\n        let headerOption = '\u003cdiv class=\"description-wrapper-header\" id=\"description-scroll-header-' + descriptionId + '\"\u003e';\n\n        let scrollOption = '\u003cdiv class=\"description-container\" id=\"description-scroll-' + descriptionId + '\"\u003e';\n\n        list.forEach((item, index) =\u003e {\n            let id = index + 1;\n            headerOption += '\u003cspan class=\"description-header-button\" id=\"description-header-button-' + descriptionId + \"-\" + id + '\"\u003e' + item.title + '\u003c\/span\u003e';\n            scrollOption += '\u003cdiv class=\"description-wrapper\"\u003e' + addPicture(item) + '\u003c\/div\u003e';\n        });\n\n\n        headerOption += '\u003c\/div\u003e';\n\n        scrollOption += '\u003c\/div\u003e';\n\n        option += headerOption + scrollOption;\n\n        descriptionItem.innerHTML = option;\n\n\t\tconst scrollHeader = document.getElementById('description-scroll-header-' + descriptionId);\n\n        const scroll = document.getElementById('description-scroll-' + descriptionId);\n        scroll.addEventListener('scroll', () =\u003e {\n            let index = scroll.scrollLeft \/ scroll.offsetWidth;\n            index = Math.round(index);\n\n            if (selectIndex != index) {\n                selectIndex = index;\n                showSelectDot(headers, selectIndex);\n\t\t\t\t\n\t\t\t\tlet left = getHeaderBtnOffsetLetf(headers, selectIndex);\n                scrollHeader.scrollLeft = left - 20;\n\t\t\t\t\n            }\n        });\n\n        for (let i = 0; i \u003c headerCount; i++) {\n            let btn = document.getElementById(\"description-header-button-\" + descriptionId + '-' + (i + 1));\n            if (btn) {\n                btn.addEventListener('click', () =\u003e {\n                    scroll.scrollLeft = i * scroll.offsetWidth;\n                });\n\n                headers.push(btn);\n            }\n        }\n        showSelectDot(headers, selectIndex);\n\n        const previous = document.getElementById(\"scroll-\" + descriptionId + \"-previous\");\n        if (previous) {\n            previous.addEventListener('click', () =\u003e {\n                let index = selectIndex - 1;\n                if (index \u003c 0) {\n                    index = headerCount - 1;\n                }\n                scroll.scrollLeft = index * scroll.offsetWidth;\n            });\n        }\n\n        const next = document.getElementById(\"scroll-\" + descriptionId + \"-next\");\n        if (next) {\n            next.addEventListener('click', () =\u003e {\n                let index = selectIndex + 1;\n                if (index \u003e headerCount - 1) {\n                    index = 0;\n                }\n                scroll.scrollLeft = index * scroll.offsetWidth;\n            });\n        }\n    }\n\n    \/\/滑动图\n    function addScrollItem(descriptionId, list) {\n       const dots = [];\n\n        let dotCount = list.length;\n        let selectIndex = 0;\n\n\n        const descriptionItem = document.getElementById('description-item-' + descriptionId);\n        let option = previousButton('scroll-' + descriptionId +'-previous')\n            + nextButton('scroll-' + descriptionId + '-next');\n\n        let scrollOption = '\u003cdiv class=\"description-container\" id=\"description-scroll-' + descriptionId + '\"\u003e';\n        list.forEach((item, index) =\u003e {\n            scrollOption += '\u003cdiv class=\"description-wrapper\"\u003e'\n                + addPicture(item)\n                + '\u003c\/div\u003e';\n        });\n\n        scrollOption += '\u003c\/div\u003e';\n\n        option += scrollOption + addDotButton(dotCount, \"scroll-\" + descriptionId + \"-\");\n        descriptionItem.innerHTML = option;\n\n\n        const scroll = document.getElementById('description-scroll-' + descriptionId);\n        scroll.addEventListener('scroll', () =\u003e {\n            let index = scroll.scrollLeft \/ scroll.offsetWidth;\n            index = Math.round(index);\n\n            if (selectIndex != index) {\n                selectIndex = index;\n                showSelectDot(dots, selectIndex);\n            }\n        });\n\n        for (let i = 0; i \u003c dotCount; i++) {\n            let dotBtn = document.getElementById(\"scroll-\" + descriptionId + \"-\" + (i + 1));\n            if (dotBtn) {\n                dotBtn.addEventListener('click', () =\u003e {\n                    scroll.scrollLeft = i * scroll.offsetWidth;\n                });\n\n                dots.push(dotBtn);\n            }\n        }\n        showSelectDot(dots, selectIndex);\n\n        const previous = document.getElementById(\"scroll-\" + descriptionId + \"-previous\");\n        if (previous) {\n            previous.addEventListener('click', () =\u003e {\n                let index = selectIndex - 1;\n                if (index \u003c 0) {\n                    index = dotCount - 1;\n                }\n                scroll.scrollLeft = index * scroll.offsetWidth;\n            });\n        }\n\n        const next = document.getElementById(\"scroll-\" + descriptionId + \"-next\");\n        if (next) {\n            next.addEventListener('click', () =\u003e {\n                let index = selectIndex + 1;\n                if (index \u003e dotCount - 1) {\n                    index = 0;\n                }\n                scroll.scrollLeft = index * scroll.offsetWidth;\n            });\n        }\n    }\n\n    \/\/规格\n    function addSpecification() {\n        const specification = document.getElementById('description-specification');\n\n        const specificationDots = [];\n        let dotCount = 0;\n        let specificationSelectIndex = 0;\n        if (window.matchMedia(\"(max-width: 767px)\").matches) {\n            specification.innerHTML = addSpecificationMobile();\n            dotCount = 3;\n        } else {\n            specification.innerHTML = addSpecificationDesktop();\n            dotCount = 2;\n        }\n\n        const scrollSpecification = document.getElementById(\"description-scroll-specification\");\n        scrollSpecification.addEventListener('scroll', () =\u003e {\n            let index = scrollSpecification.scrollLeft \/ scrollSpecification.offsetWidth;\n            index = Math.round(index);\n\n            if (specificationSelectIndex != index) {\n                specificationSelectIndex = index;\n                showSelectDot(specificationDots, specificationSelectIndex);\n                updateSpecificationsContent(specificationSelectIndex);\n            }\n        });\n\n        for (let i = 0; i \u003c dotCount; i++) {\n            let dotBtn = document.getElementById(\"specification-\" + (i + 1));\n            if (dotBtn) {\n                dotBtn.addEventListener('click', () =\u003e {\n                    scrollSpecification.scrollLeft = i * scrollSpecification.offsetWidth;\n                });\n\n                specificationDots.push(dotBtn);\n            }\n        }\n\n        showSelectDot(specificationDots, specificationSelectIndex);\n        updateSpecificationsContent(specificationSelectIndex);\n\n        const previous = document.getElementById(\"specification-previous\");\n        if (previous) {\n            previous.addEventListener('click', () =\u003e {\n                let index = specificationSelectIndex - 1;\n                if (index \u003c 0) {\n                    index = dotCount - 1;\n                }\n\n                scrollSpecification.scrollLeft = index * scrollSpecification.offsetWidth;\n            });\n        }\n\n        const next = document.getElementById(\"specification-next\");\n        if (next) {\n            next.addEventListener('click', () =\u003e {\n                let index = specificationSelectIndex + 1;\n                if (index \u003e dotCount - 1) {\n                    index = 0;\n                }\n\n                scrollSpecification.scrollLeft = index * scrollSpecification.offsetWidth;\n            });\n        }\n    }\n\n    function addSpecificationDesktop() {\n        let specificationOption = '\u003cdiv class=\"description-column\"\u003e'\n            + '\u003ch3 class=\"description-column-title\"\u003e' + specificationData[0].title + '\u003c\/h3\u003e'\n            + addPicture(specificationData[0])\n            + '\u003c\/div\u003e';\n\n        specificationOption += '\u003cdiv class=\"description-column-specifications\"\u003e'\n            + '\u003cdiv class=\"description-specifications\"\u003e'\n            + '\u003ch3 class=\"description-specifications-title\"\u003e' + specificationTitle + '\u003c\/h3\u003e'\n            + '\u003cdiv class=\"description-specifications-border\"\u003e'\n            + '\u003cdiv class=\"description-specifications-column\"\u003e'\n            + addSpecificationList(specificationData[0].specifications, true)\n            + '\u003c\/div\u003e'\n            + '\u003cdiv class=\"description-specifications-column\"\u003e'\n            + addSpecificationList(specificationList, false)\n            + '\u003c\/div\u003e'\n            + '\u003cdiv class=\"description-specifications-column\" id=\"description-specification-content\"\u003e\u003c\/div\u003e'\n            + '\u003c\/div\u003e'\n            + '\u003c\/div\u003e'\n            + '\u003c\/div\u003e';\n\n        specificationOption += '\u003cdiv class=\"description-column\"\u003e'\n            + previousButton(\"specification-previous\")\n            + nextButton(\"specification-next\")\n            + '\u003cdiv class=\"description-container\" id=\"description-scroll-specification\"\u003e'\n            + addSpecificationsProduct(specificationData[1])\n            + addSpecificationsProduct(specificationData[2])\n            + '\u003c\/div\u003e'\n            + addDotButton(2, \"specification-\")\n            + '\u003c\/div\u003e';\n\n        return specificationOption;\n    }\n\n    function addSpecificationMobile() {\n        let specificationOption = '\u003ch3 class=\"description-specifications-title\"\u003e' + specificationTitle + '\u003c\/h3\u003e'\n\n        specificationOption += '\u003cdiv class=\"description-container\" id=\"description-scroll-specification\"\u003e'\n        specificationData.forEach(item =\u003e {\n            specificationOption += '\u003cdiv class=\"description-wrapper\"\u003e';\n            specificationOption += addPicture(item);\n            specificationOption += '\u003ch3 class=\"description-column-title\"\u003e' + item.title + '\u003c\/h3\u003e';\n            specificationOption += addSpecificationListMobile(item.specifications);\n            if (item.link) {\n                specificationOption += '\u003ca class=\"description-specifications-a\" href=\"' + item.link + '\"\u003e \u003cdiv class=\"description-specifications-button\"\u003e' + \"Learn More\" + '\u003c\/div\u003e \u003c\/a\u003e';\n            }\n            specificationOption += '\u003c\/div\u003e'\n        });\n        specificationOption += addDotButton(3, \"specification-\");\n        specificationOption += '\u003c\/div\u003e'\n\n        return specificationOption;\n    }\n\n    function addSpecificationList(list, addIcon) {\n        let option = '';\n        list.forEach(item =\u003e {\n            option += '\u003cp\u003e' + item + '\u003c\/p\u003e';\n        });\n        if (addIcon) {\n            option += '\u003cp\u003e' + getSupportIcon() + '\u003c\/p\u003e';\n        }\n\n        return option;\n    }\n\n    function addSpecificationListMobile(list) {\n        let option = '';\n        list.forEach((item, index) =\u003e {\n            option += '\u003cdiv class=\"description-specifications-item\"\u003e'\n                + '\u003cdiv class=\"description-specifications-item-text\"\u003e' + specificationList[index] + '\u003c\/div\u003e'\n                + '\u003cdiv class=\"description-specifications-item-text\"\u003e' + item + '\u003c\/div\u003e'\n                + '\u003c\/div\u003e';\n        });\n\n        option += '\u003cdiv class=\"description-specifications-item\"\u003e'\n            + '\u003cdiv class=\"description-specifications-item-text\"\u003e' + specificationList[specificationList.length - 1] + '\u003c\/div\u003e'\n            + '\u003cdiv class=\"description-specifications-item-text\"\u003e' + getSupportIcon() + '\u003c\/div\u003e'\n            + '\u003c\/div\u003e';\n        return option;\n    }\n\n    function getSupportIcon() {\n        let icon = '\u003csvg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\"\u003e \u003cpath d=\"M16,0C7.13333,0,0,7.13333,0,16C0,24.8667,7.13333,32,16,32C24.8667,32,32,24.8667,32,16C32,7.13333,24.8667,0,16,0ZM26,12L15.4,22.6C14.6667,23.3333,13.3333,23.3333,12.6,22.6L6,16Q5,15,6,14Q7,13,8,14L14,20L24,10Q25,9,26,10Q27,11,26,12Z\" fill=\"#000000\" fill-opacity=\"1\" \/\u003e \u003c\/svg\u003e';\n        return icon;\n    }\n\n    function addSpecificationsProduct(item) {\n        let option = '\u003cdiv class=\"description-wrapper\"\u003e'\n            + '\u003ch3 class=\"description-column-title\"\u003e' + item.title + '\u003c\/h3\u003e'\n            + '\u003ca href=\"' + item.link + '\"\u003e' + addPicture(item) + ' \u003c\/a\u003e'\n            + '\u003c\/div\u003e';\n\n        return option;\n    }\n\n    function updateSpecificationsContent(index) {\n        if (window.matchMedia(\"(max-width: 767px)\").matches) {\n            return;\n        }\n        let option = addSpecificationList(specificationData[index + 1].specifications, true);\n        const specificationContent = document.getElementById('description-specification-content');\n        specificationContent.innerHTML = option;\n    }\n\n    function addFAQs() {\n        let list = descriptionData.item8;\n        const faqs = document.getElementById('description-faqs');\n        let faqsOption = '';\n        list.forEach((item, index) =\u003e {\n            const id = \"description-faqs-collapse-\" + (index + 1);\n            faqsOption += '\u003cdiv class=\"description-faqs-item\"\u003e';\n\n            faqsOption += '\u003cdiv class=\"description-faqs-header\" data-target=\"' + id + '\" aria-controls=\"' + id + '\"\u003e'\n                + '\u003cdiv class=\"description-faqs-title\"\u003e' + item.title + '\u003c\/div\u003e \u003cdiv class=\"description-faqs-arrow\"\u003e' + faqIcon() + '\u003c\/div\u003e'\n                + '\u003c\/div\u003e';\n\n            faqsOption += '\u003cdiv id=\"' + id + '\" class=\"description-faqs-collapse\"\u003e';\n            item.content.forEach(content =\u003e {\n                faqsOption += '\u003cdiv class=\"description-faqs-collapse-text\"\u003e' + content + '\u003c\/div\u003e';\n            });\n            faqsOption += '\u003c\/div\u003e';\n\n            faqsOption += '\u003c\/div\u003e';\n        });\n        faqs.innerHTML = faqsOption;\n\n        \/\/问答点击事件\n        document.querySelectorAll('.description-faqs-header').forEach(item =\u003e {\n            item.addEventListener('click', (event) =\u003e {\n                const targetId = item.getAttribute('data-target');\n                const controlsId = item.getAttribute('aria-controls');\n                if (targetId === controlsId) {\n                    item.classList.toggle('description-faqs-collapsed');\n                    const collapse = document.getElementById(targetId);\n                    if (collapse.style.display === 'block') {\n                        item.classList.remove('active');\n                        collapse.style.display = 'none';\n                    } else {\n                        item.classList.add('active');\n                        collapse.style.display = 'block';\n                    }\n                }\n            });\n        });\n    }\n\n    \/\/图片\n    function addPicture(item) {\n        let option;\n        if (item.img_mb) {\n            option = '\u003cpicture\u003e\u003csource media=\"(max-width: 767px)\" srcset=\"' + item.img_mb + '\"\u003e\u003cimg src=\"' + item.img + '\"\u003e\u003c\/picture\u003e';\n        } else {\n            option = '\u003cimg src=\"' + item.img + '\"\u003e';\n        }\n        return option;\n    }\n\n    function addItem2Content(item) {\n        let connectOption = '';\n        item.content.forEach(content =\u003e {\n            connectOption += '\u003cp\u003e' + content + '\u003c\/p\u003e';\n        });\n\n        let option = '\u003cdiv class=\"description-wrapper-item description-wrapper-text\"\u003e'\n            + '\u003cdiv\u003e'\n            + '\u003ch3\u003e' + item.title + '\u003c\/h3\u003e'\n            + connectOption\n            + '\u003c\/div\u003e'\n            + '\u003c\/div\u003e';\n\n        return option;\n    }\n\n    \/\/上一个按钮\n    function previousButton(id) {\n        let buttonOption = '\u003cbutton type=\"button\" class=\"description-scroll-btn description-scroll-btn-left\" name=\"previous\" id=\"' + id + '\"\u003e'\n            + '\u003csvg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" viewBox=\"0 0 10 6\"\u003e \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z\"\u003e\u003c\/svg\u003e'\n            + '\u003c\/button\u003e'\n        return buttonOption;\n    }\n\n    \/\/下一个按钮\n    function nextButton(id) {\n        let buttonOption = '\u003cbutton type=\"button\" class=\"description-scroll-btn description-scroll-btn-right\" name=\"next\" id=\"' + id + '\"\u003e'\n            + '\u003csvg aria-hidden=\"true\" focusable=\"false\" role=\"presentation\" viewBox=\"0 0 10 6\"\u003e \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z\"\u003e\u003c\/svg\u003e'\n            + '\u003c\/button\u003e'\n        return buttonOption;\n    }\n\n    \/\/圆点按钮\n    function addDotButton(count, id) {\n        let option = '\u003cdiv class=\"description-dot-container\"\u003e';\n        for (let i = 0; i \u003c count; i++) {\n            option += '\u003cbutton class=\"description-dot\" id=\"' + id + (i + 1) + '\"\u003e' + \" \" + '\u003c\/button\u003e';\n        }\n        option += '\u003c\/div\u003e';\n        return option;\n    }\n\n    function showSelectDot(list, selectIndex) {\n        removeSelectDot(list);\n        if (selectIndex \u003c list.length) {\n            list[selectIndex].classList.add('active');\n        }\n    }\n\n    function removeSelectDot(list) {\n        list.forEach(btn =\u003e btn.classList.remove('active'));\n    }\n\n    function faqIcon() {\n        let icon = '\u003csvg viewBox=\"0 0 24 24\"\u003e \u003cpath d=\"M23.7473,6.245925C23.5906,6.0872122,23.3685,6.000865772,23.1247,6.000865772C22.8461,6.000865772,22.5753,6.113077,22.3794,6.308586L11.9994,16.8194L1.61957,6.309961C1.42452,6.113077,1.15371,6,0.875967,6C0.630434,6,0.408393,6.0872416,0.249915,6.246851C-0.106638,6.609795,-0.0783419,7.23016,0.313478,7.62776L11.2341,18.6844C11.43,18.8825,11.6939,18.9973,11.9603,19L12.0596,19C12.3199,18.9912,12.5759,18.877200000000002,12.7675,18.6844L23.6872,7.62686C24.079,7.22834,24.1069,6.6075859999999995,23.7473,6.245925Z\" fill=\"#000000\" fill-opacity=\"1\" \/\u003e\u003c\/svg\u003e';\n        return icon;\n    }\n\n    function getHeaderBtnOffsetLetf(list, selectIndex) {\n        if (selectIndex \u003c list.length) {\n            return list[selectIndex].offsetLeft;\n        }\n\n        return 0;\n    }\n\u003c\/script\u003e","brand":"Miofive","offers":[{"title":"Default Title","offer_id":49545870016816,"sku":"Mini S-UK","price":49.85,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0842\/2329\/5792\/files\/1_691f6c51-46e9-44ce-a9d4-fd1e198b8398.webp?v=1782108380"}],"url":"https:\/\/www.miofive.com\/collections\/mini-s.oembed","provider":"Miofive","version":"1.0","type":"link"}