{"id":36924,"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\/no\/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 Frihet i to st\u00f8rrelser<\/h1>\n                    \n        \n        <div class=\"ff-bodytext \">\n            <p>Enten du foretrekker en kompakt eller romslig modell \u2013 BOBO finnes i to varianter som har \u00e9n ting til felles: maksimal fleksibilitet med minimalt vedlikehold.<br \/>\nBOBO L+ er den ideelle f\u00f8lgesvennen for helgeturer og offroad-eventyr, mens BOBO XL+ overbeviser med enda mer plass og lastekapasitet \u2013 perfekt for lengre reiser og store planer.<\/p>\n<p>Begge modellene deler samme DNA: robust terrengteknikk, modul\u00e6r konstruksjon og det karakteristiske VANME-designet.<br \/>\nVelg den BOBO-modellen som passer til ditt 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\/no\/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\">Ryggsekkst\u00f8rrelse L<\/div>\n\n                        \n                     <\/a>\n\n\n                 \n                    <a href=\"https:\/\/vanme.de\/no\/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\">Ryggsekkst\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 informasjon\"\n                         data-bookmark-content=\"Jeg ber om ytterligere informasjonsmateriell om BOBO.\">\n                    <\/div>\n                    <div class=\"text ff-bodytext\">Legg til traileren til BOBO i foresp\u00f8rselen din<\/div>\n                <\/div>\n\n            \n\n                            <div class=\"text ff-bodytext\">Vil du ha din egen BOBO? Send inn en foresp\u00f8rsel for \u00e5 f\u00e5 svar p\u00e5 alle sp\u00f8rsm\u00e5lene du har. Dette er det f\u00f8rste skrittet mot at BOBO snart kan f\u00f8lge deg p\u00e5 dine eventyr.<\/div>\n                <a class=\"s1x-button btn-white-do\" href=\"https:\/\/vanme.de\/no\/kontakt\/\">\n                    Kontakt                <\/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":34817,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-36924","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/pages\/36924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/comments?post=36924"}],"version-history":[{"count":1,"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/pages\/36924\/revisions"}],"predecessor-version":[{"id":36972,"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/pages\/36924\/revisions\/36972"}],"up":[{"embeddable":true,"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/pages\/34817"}],"wp:attachment":[{"href":"https:\/\/vanme.de\/no\/wp-json\/wp\/v2\/media?parent=36924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}