{"id":36895,"date":"2025-05-19T17:17:43","date_gmt":"2025-05-19T15:17:43","guid":{"rendered":"https:\/\/vanme.de\/bobo-campingvognen\/bobo-modeller\/"},"modified":"2026-09-15T11:27:48","modified_gmt":"2026-09-15T09:27:48","slug":"bobo-modeller","status":"publish","type":"page","link":"https:\/\/vanme.de\/da\/bobo-campingvognen\/bobo-modeller\/","title":{"rendered":"BOBO-modeller"},"content":{"rendered":"\n    \n                        \n            \n            <section class=\"block-media cnt-1  block-media-mobile-sort- blockheight-laptop-80vh blockheight-tablet-60vh blockheight-mobile-60vh blockstyle-display block-media-width-\" style=\"margin-top: 0px\">\n\n                \n                \n                    \n                    <div class=\"media media-0 has-media\">\n\n                        \n\n                        \n                            \n                            <picture class=\"s1x-picture-cover jshook-provide-hq-after-dom-loaded \">\n                                <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-portugal-outlook3.jpg\"\n                                        width=\"1920\"\n                                        height=\"1080\">\n\n                                \n                                <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-portugal-outlook3.jpg.webp\"\n                                        width=\"1920\"\n                                        height=\"1080\"\n                                        type=\"image\/webp\">\n\n                                                                <img decoding=\"async\" loading=\"lazy\"\n                                     src=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-portugal-outlook3.jpg\"\n                                     width=\"1920\"\n                                     height=\"1080\"\n                                     alt=\"\">\n                            <\/picture>\n\n                        \n                        <div class=\"overlay s1x-absolute-100 has-media                            s1x-tovp-tablapdesk-                            s1x-tovp-mob-\n                            s1x-tovp-notext\">\n\n                            \n                            \n                            \n                            \n                            \n                            \n                        <\/div>\n\n                        \n                    <\/div>\n\n                \n            <\/section>\n\n            \n\n\n    <section class=\"block-breadcrumb  area-align-\" style=\"margin-top: 40px; max-width: ;\">\n\n        <nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Hjem<\/span><\/p><\/nav>\n    <\/section>\n\n\n\n    <section class=\"block-text center area-align-center\" style=\"margin-top: 80px; max-width: 1600px\">\n\n        \n                                \n                                            <h1 class=\"ff-bebas-ds80 ff-uppercase hlsize-\">BOBO \u2013 Frihed i to st\u00f8rrelser<\/h1>\n                    \n        \n        <div class=\"ff-bodytext \">\n            <p>Uanset om du foretr\u00e6kker en kompakt eller en rummelig model \u2013 BOBO f\u00e5s i to varianter, der har \u00e9n ting til f\u00e6lles: maksimal fleksibilitet med minimal indsats.<br \/>\nBOBO L+ er den ideelle ledsager til weekendture og offroad-eventyr, mens BOBO XL+ overbeviser med endnu mere plads og lastekapacitet \u2013 perfekt til l\u00e6ngere rejser og store planer.<\/p>\n<p>Begge modeller deler det samme DNA: robust offroad-teknologi, modulopbygget konstruktion og det umiskendelige VANME-design.<br \/>\nV\u00e6lg den BOBO, der passer til dit eventyr.<\/p>\n        <\/div>\n\n\n                \n    <\/section>\n\n\n\n    \n                \n            <section class=\"block-cars-grid\" style=\"margin-top: 80px\">\n\n                 \n                    <a href=\"https:\/\/vanme.de\/da\/bobo-campingvognen\/bobo-modeller\/bobo-l\/\" class=\"item\">\n\n                         \n                         <picture class=\"jshook-provide-hq-after-dom-loaded\">\n                             <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-sideview.png\"\n                                     width=\"1300\"\n                                     height=\"850\">\n\n                             \n                             <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-sideview.png.webp\"\n                                     width=\"1300\"\n                                     height=\"850\"\n                                     type=\"image\/webp\">\n\n                                                          <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-sideview.png\"\n                                  width=\"1300\"\n                                  height=\"850\"\n                                  alt=\"\">\n                         <\/picture>\n\n                         <h3 class=\"headline ff-lakes-neue-cnd-ds23\">BOBO L+<\/h3>\n                         <div class=\"text ff-bodytext\">Rygs\u00e6kst\u00f8rrelse L<\/div>\n\n                        \n                     <\/a>\n\n\n                 \n                    <a href=\"https:\/\/vanme.de\/da\/bobo-campingvognen\/bobo-modeller\/bobo-xl\/\" class=\"item\">\n\n                         \n                         <picture class=\"jshook-provide-hq-after-dom-loaded\">\n                             <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/09\/bobo-xl-modellbase-2.png\"\n                                     width=\"1300\"\n                                     height=\"850\">\n\n                             \n                             <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/09\/bobo-xl-modellbase-2.png.webp\"\n                                     width=\"1300\"\n                                     height=\"850\"\n                                     type=\"image\/webp\">\n\n                                                          <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/09\/bobo-xl-modellbase-2.png\"\n                                  width=\"1300\"\n                                  height=\"850\"\n                                  alt=\"\">\n                         <\/picture>\n\n                         <h3 class=\"headline ff-lakes-neue-cnd-ds23\">BOBO XL+<\/h3>\n                         <div class=\"text ff-bodytext\">Rygs\u00e6kst\u00f8rrelse XL<\/div>\n\n                        \n                     <\/a>\n\n\n                 \n            <\/section>\n\n        <script>\n            \/**\n             * Sets container padding based on content heights and adds interaction behavior\n             *\/\n            function initCarGridFunctionality() {\n                \/\/ Get all item elements\n                const items = document.querySelectorAll('.block-cars-grid .item');\n\n                \/\/ Function to set container padding\n                function setContainerPadding() {\n                    items.forEach(item => {\n                        \/\/ Get the elements whose heights we need to calculate\n                        const picture = item.querySelector('picture');\n                        const headline = item.querySelector('.headline');\n                        const text = item.querySelector('.text');\n                        const container = item.querySelector('.container');\n\n                        if (!picture || !headline || !text || !container) return;\n\n                        \/\/ Calculate total height\n                        const pictureHeight = picture.offsetHeight;\n                        const headlineHeight = headline.offsetHeight;\n                        const textHeight = text.offsetHeight;\n\n                        \/\/ Set padding-top of the container\n                        const totalHeight = pictureHeight + headlineHeight + textHeight + 20;\n                        container.style.paddingTop = `${totalHeight}px`;\n                    });\n                }\n\n                \/\/ Function to scroll an element to the center of the viewport\n                function scrollToCenter(element) {\n                    if (!element) return;\n\n                    \/\/ Get element's position relative to the viewport\n                    const rect = element.getBoundingClientRect();\n\n                    \/\/ Calculate where the element should be positioned\n                    const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n                    const windowHeight = window.innerHeight;\n                    const elementHeight = rect.height;\n\n                    \/\/ Calculate the target scroll position (center of element aligned with center of viewport)\n                    const targetScrollPosition = scrollTop + rect.top - (windowHeight \/ 2) + (elementHeight \/ 2);\n\n                    \/\/ Smooth scroll to the target position\n                    window.scrollTo({\n                        top: targetScrollPosition,\n                        behavior: 'smooth'\n                    });\n                }\n\n                \/\/ Detect if device is mobile (touch device)\n                const isMobile = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n\n                \/\/ Setup interaction behavior for each item\n                items.forEach(item => {\n                    const container = item.querySelector('.container');\n                    const button = item.querySelector('.container .s1x-button');\n\n                    if (!container) return;\n\n                    if (isMobile) {\n                        \/\/ Mobile: Add click event to toggle active class\n                        item.addEventListener('click', function(event) {\n                            \/\/ Check if this item is already active\n                            const isActive = item.classList.contains('active');\n\n                            \/\/ Get the target and check if it's within the container or a link\n                            let target = event.target;\n                            let isWithinContainer = false;\n                            let isLink = target.tagName === 'A';\n\n                            \/\/ Check if target is within the container or is a link\n                            while (target && target !== item && !isLink) {\n                                if (target === container) {\n                                    isWithinContainer = true;\n                                }\n                                if (target.tagName === 'A') {\n                                    isLink = true;\n                                }\n                                target = target.parentNode;\n                            }\n\n                            \/\/ If it's already active, close it (unless clicking a link or inside container)\n                            if (isActive && !isLink && !isWithinContainer) {\n                                item.classList.remove('active');\n                                event.preventDefault();\n                                event.stopPropagation();\n                                return;\n                            }\n\n                            \/\/ If click is not within the container and not on a link\n                            if (!isWithinContainer && !isLink) {\n                                \/\/ Remove active class from all items first\n                                document.querySelectorAll('.block-cars-grid .item').forEach(i => {\n                                    i.classList.remove('active');\n                                });\n\n                                \/\/ Add active class\n                                item.classList.add('active');\n\n                                \/\/ Scroll this item to center of viewport\n                                scrollToCenter(item);\n\n                                event.preventDefault();\n                                event.stopPropagation();\n                            }\n                        });\n\n                        \/\/ Add click handler specifically for pictures\n                        const picture = item.querySelector('picture');\n                        if (picture) {\n                            picture.addEventListener('click', function(event) {\n                                \/\/ Check if this item is already active\n                                const isActive = item.classList.contains('active');\n\n                                if (isActive) {\n                                    \/\/ If already active, close it\n                                    item.classList.remove('active');\n                                } else {\n                                    \/\/ Remove active class from all items first\n                                    document.querySelectorAll('.block-cars-grid .item').forEach(i => {\n                                        i.classList.remove('active');\n                                    });\n\n                                    \/\/ Add active class\n                                    item.classList.add('active');\n\n                                    \/\/ Scroll this item to center of viewport\n                                    scrollToCenter(item);\n                                }\n\n                                event.preventDefault();\n                                event.stopPropagation();\n                            });\n                        }\n                    } else {\n                        \/\/ Desktop: Add hover events for visual effect\n                        item.addEventListener('mouseenter', function() {\n                            item.classList.add('active');\n                        });\n\n                        item.addEventListener('mouseleave', function() {\n                            item.classList.remove('active');\n                        });\n\n                        \/\/ Desktop: Add click event to navigate to button URL\n                        item.addEventListener('click', function(event) {\n                            \/\/ Get the URL from the button\n                            if (button && button.getAttribute('href')) {\n                                const url = button.getAttribute('href');\n\n                                \/\/ Check if clicking on a link or the button itself\n                                let isButtonOrLink = false;\n                                let target = event.target;\n\n                                while (target && target !== item) {\n                                    if (target.tagName === 'A') {\n                                        isButtonOrLink = true;\n                                        break;\n                                    }\n                                    target = target.parentNode;\n                                }\n\n                                \/\/ If not clicking on a link or button directly, navigate to button URL\n                                if (!isButtonOrLink) {\n                                    window.location.href = url;\n                                    event.preventDefault();\n                                }\n                            }\n                        });\n                    }\n                });\n\n                \/\/ For mobile: Close active item when clicking outside\n                if (isMobile) {\n                    document.addEventListener('click', function(event) {\n                        \/\/ Check if click is outside of any item\n                        const clickedOnItem = event.target.closest('.block-cars-grid .item');\n\n                        if (!clickedOnItem) {\n                            \/\/ Remove active class from all items\n                            document.querySelectorAll('.block-cars-grid .item').forEach(item => {\n                                item.classList.remove('active');\n                            });\n                        }\n                    });\n                }\n\n                \/\/ Handle resize and page load events\n                window.addEventListener('load', setContainerPadding);\n\n                let resizeTimeout;\n                window.addEventListener('resize', function() {\n                    clearTimeout(resizeTimeout);\n                    resizeTimeout = setTimeout(setContainerPadding, 100);\n                });\n\n                window.addEventListener('orientationchange', setContainerPadding);\n\n                \/\/ Initial calculation\n                setContainerPadding();\n            }\n\n            \/\/ Initialize when DOM is ready\n            document.addEventListener('DOMContentLoaded', initCarGridFunctionality);\n        <\/script>\n\n            \n\n\n    <section class=\"block-contact\" style=\"margin-top: 80px\">\n\n\n        <div class=\"block-inner\">\n\n                            <div class=\"bookmark\">\n                    <div class=\"cssimg-bookmark cssimg-contain-center-norepeat jshook-bookmark-add\"\n                         data-bookmark-headline=\"Trailer BOBO \u2013 information\"\n                         data-bookmark-content=\"Jeg anmoder om yderligere informationsmateriale om BOBO.\">\n                    <\/div>\n                    <div class=\"text ff-bodytext\">Husk traileren til BOBO, n\u00e5r du sender din foresp\u00f8rgsel<\/div>\n                <\/div>\n\n            \n\n                            <div class=\"text ff-bodytext\">Vil du have din egen BOBO? Send en foresp\u00f8rgsel for at f\u00e5 svar p\u00e5 alle dine sp\u00f8rgsm\u00e5l. Det er det f\u00f8rste skridt p\u00e5 vejen til, at BOBO snart kan f\u00f8lge dig p\u00e5 dine eventyr.<\/div>\n                <a class=\"s1x-button btn-white-do\" href=\"https:\/\/vanme.de\/da\/kontakt\/\">\n                    Kontaktoplysninger                <\/a>\n            \n        <\/div>\n\n        \n        <picture class=\"s1x-picture-cover-absolute jshook-provide-hq-after-dom-loaded\">\n            <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-portugal-outlook.jpg\"\n                    width=\"1920\"\n                    height=\"1080\">\n\n            \n            <source srcset-hq=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-portugal-outlook.jpg.webp\"\n                    width=\"1920\"\n                    height=\"1080\"\n                    type=\"image\/webp\">\n\n                        <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vanme.de\/wp-content\/uploads\/2025\/05\/bobo-lplus-portugal-outlook.jpg\"\n                 width=\"1920\"\n                 height=\"1080\"\n                 alt=\"\">\n        <\/picture>\n\n\n    <\/section>\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":34793,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-36895","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/pages\/36895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/comments?post=36895"}],"version-history":[{"count":1,"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/pages\/36895\/revisions"}],"predecessor-version":[{"id":36906,"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/pages\/36895\/revisions\/36906"}],"up":[{"embeddable":true,"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/pages\/34793"}],"wp:attachment":[{"href":"https:\/\/vanme.de\/da\/wp-json\/wp\/v2\/media?parent=36895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}