{"id":155441,"date":"2026-04-08T15:37:28","date_gmt":"2026-04-08T12:37:28","guid":{"rendered":"https:\/\/test.mylittlehome.com.sa\/home-mockup\/"},"modified":"2026-07-04T15:00:24","modified_gmt":"2026-07-04T12:00:24","slug":"home-mockup","status":"publish","type":"page","link":"https:\/\/test.mylittlehome.com.sa\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"155441\" class=\"elementor elementor-155441 elementor-154953\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-b45c664 e-flex e-con-boxed e-con e-parent\" data-id=\"b45c664\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0cb5ee2 elementor-widget elementor-widget-html\" data-id=\"0cb5ee2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"fss-156438\" class=\"fss-wrapper\" style=\"--fss-nav-color:#000000;--fss-nav-active:#000000;\"><div class=\"fss-section\" id=\"fss-156438-s0\" data-index=\"0\" data-name=\"New Arrivals\" style=\"background-image:url('https:\/\/test.mylittlehome.com.sa\/wp-content\/uploads\/2026\/04\/section-one-home.jpg')\"><div class=\"fss-overlay\" style=\"background-color:#000000;opacity:0;\"><\/div><a href=\"https:\/\/test.mylittlehome.com.sa\/bed-linen\/\" target=\"_self\" class=\"fss-section-link\" aria-label=\"New Arrivals\"><\/a><div class=\"fss-title fss-title-v-center fss-title-h-center\"><span>Pure materials, pure comfort. <\/span><\/div><\/div><div class=\"fss-section\" id=\"fss-156438-s1\" data-index=\"1\" data-name=\"Shop Now\" style=\"background-image:url('https:\/\/test.mylittlehome.com.sa\/wp-content\/uploads\/2026\/04\/section-two-home.jpg')\"><div class=\"fss-overlay\" style=\"background-color:#000000;opacity:0;\"><\/div><a href=\"https:\/\/test.mylittlehome.com.sa\/shop\" target=\"_self\" class=\"fss-section-link\" aria-label=\"Shop Now\"><\/a><\/div><div class=\"fss-section\" id=\"fss-156438-s2\" data-index=\"2\" data-name=\"Discounts\" style=\"background-image:url('https:\/\/test.mylittlehome.com.sa\/wp-content\/uploads\/2026\/04\/section-3-home.jpg')\"><div class=\"fss-overlay\" style=\"background-color:#000000;opacity:0;\"><\/div><a href=\"https:\/\/test.mylittlehome.com.sa\/bed-linen\/quilts\/\" target=\"_self\" class=\"fss-section-link\" aria-label=\"Discounts\"><\/a><\/div><nav class=\"fss-side-nav\" aria-label=\"Sections\"><div class=\"fss-side-nav-track\"><button class=\"fss-side-dot active\" data-index=\"0\" aria-label=\"New Arrivals\"><span class=\"fss-side-dot-inner\"><\/span><span class=\"fss-side-dot-label\">New Arrivals<\/span><\/button><button class=\"fss-side-dot\" data-index=\"1\" aria-label=\"Shop Now\"><span class=\"fss-side-dot-inner\"><\/span><span class=\"fss-side-dot-label\">Shop Now<\/span><\/button><button class=\"fss-side-dot\" data-index=\"2\" aria-label=\"Discounts\"><span class=\"fss-side-dot-inner\"><\/span><span class=\"fss-side-dot-label\">Discounts<\/span><\/button><\/div><\/nav><nav class=\"fss-bottom-nav\" aria-label=\"Sections\"><button class=\"fss-bottom-item active\" data-index=\"0\" aria-label=\"New Arrivals\">New Arrivals<\/button><button class=\"fss-bottom-item\" data-index=\"1\" aria-label=\"Shop Now\">Shop Now<\/button><button class=\"fss-bottom-item\" data-index=\"2\" aria-label=\"Discounts\">Discounts<\/button><\/nav><\/div><script>\n(function(){\n\n    var uid     = \"fss-156438\";\n    var wrapper = document.getElementById(uid);\n    if (!wrapper) return;\n\n    \/* Full-width fix *\/\n    function fixWidth() {\n        wrapper.style.width       = '100vw';\n        wrapper.style.marginLeft  = 'calc(50% - 50vw)';\n        wrapper.style.marginRight = 'calc(50% - 50vw)';\n        wrapper.style.left        = '0';\n        wrapper.style.right       = '0';\n    }\n    fixWidth();\n    window.addEventListener('resize', fixWidth);\n\n    var sects      = wrapper.querySelectorAll('.fss-section');\n    var sideDots   = wrapper.querySelectorAll('.fss-side-dot');\n    var bottomBtns = wrapper.querySelectorAll('.fss-bottom-item');\n    var sideNav    = wrapper.querySelector('.fss-side-nav');\n    var bottomNav  = wrapper.querySelector('.fss-bottom-nav');\n    var total      = sects.length;\n    var current    = 0;\n    var snapEnabled = true;\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       NATIVE CSS SCROLL SNAP ENGINE (100% Lag-free, Zero Stutter)\n       \n       Why: JS-hijacked scroll locks mousewheel inputs to prevent\n       double-scrolls, which feels like the page is \"stuck\/stuttering\".\n       CSS Scroll Snap runs natively on the browser's compositor thread\n       with zero delay, absolute fluidity, and native touch inertia.\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    if (snapEnabled) {\n        \/\/ \u2500\u2500 HEIGHT FIX \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        \/\/ Woodmart sticky header adds padding-top to <body> equal to the header\n        \/\/ height (via .whb-sticky-prepared { padding-top: var(--wd-header-sm-h) }).\n        \/\/ If we set wrapper height = 100dvh, it starts BELOW that padding, so it\n        \/\/ overflows the viewport bottom by exactly that same amount \u2014 causing the\n        \/\/ last slide's bottom (footer area) to be hidden and requiring an extra swipe.\n        \/\/ Fix: measure the body's actual padding-top at runtime and subtract it.\n        function applyHeights() {\n            var headerOffset = parseInt(getComputedStyle(document.body).paddingTop, 10) || 0;\n            var h = 'calc(100dvh - ' + headerOffset + 'px)';\n            var hFallback = 'calc(100vh - ' + headerOffset + 'px)';\n            wrapper.style.height = hFallback;\n            wrapper.style.height = h;\n            sects.forEach(function(s) {\n                s.style.height = hFallback;\n                s.style.height = h;\n                s.style.minHeight = hFallback;\n                s.style.minHeight = h;\n            });\n        }\n        applyHeights();\n        window.addEventListener('resize', applyHeights);\n        wrapper.style.overflowY = 'auto';\n        wrapper.style.scrollSnapType = 'y mandatory';\n        wrapper.style.scrollBehavior = 'smooth';\n        wrapper.style.scrollbarWidth = 'none'; \/\/ Firefox\n        wrapper.style.msOverflowStyle = 'none'; \/\/ IE\/Edge\n\n        \/\/ Hide scrollbar track in Chrome\/Safari\/Opera\n        var style = document.createElement('style');\n        style.textContent = '#' + uid + '::-webkit-scrollbar { display: none; }';\n        document.head.appendChild(style);\n\n        sects.forEach(function(s) {\n            s.style.scrollSnapAlign = 'start';\n            s.style.scrollSnapStop = 'always';\n        });\n    }\n\n    function syncNav(idx) {\n        sideDots.forEach(function(d, i)   { d.classList.toggle('active', i === idx); });\n        bottomBtns.forEach(function(b, i) { b.classList.toggle('active', i === idx); });\n    }\n\n    function goTo(idx) {\n        if (idx < 0 || idx >= total) return;\n        current = idx;\n        syncNav(idx);\n        if (snapEnabled) {\n            sects[idx].scrollIntoView({ behavior: 'smooth', block: 'start' });\n        } else {\n            var targetY = Math.round(sects[idx].getBoundingClientRect().top + window.pageYOffset);\n            window.scrollTo({ top: targetY, behavior: 'smooth' });\n        }\n    }\n\n    \/* Click handlers *\/\n    sideDots.forEach(function(d) {\n        d.addEventListener('click', function() { goTo(parseInt(this.dataset.index, 10)); });\n    });\n    bottomBtns.forEach(function(b) {\n        b.addEventListener('click', function() { goTo(parseInt(this.dataset.index, 10)); });\n    });\n\n    \/* Active section tracking via IntersectionObserver *\/\n    var secObs = new IntersectionObserver(function(entries) {\n        entries.forEach(function(e) {\n            if (e.isIntersecting && e.intersectionRatio >= 0.5) {\n                var idx = parseInt(e.target.dataset.index, 10);\n                current = idx;\n                syncNav(current);\n            }\n        });\n    }, { \n        root: snapEnabled ? wrapper : null, \n        threshold: 0.5 \n    });\n    sects.forEach(function(s) { secObs.observe(s); });\n\n    \/* Show\/hide nav dots based on visibility of container *\/\n    var wrapObs = new IntersectionObserver(function(entries) {\n        entries.forEach(function(e) {\n            var inView = e.isIntersecting;\n            if (sideNav)   sideNav.style.opacity  = inView ? '1' : '0';\n            if (bottomNav) bottomNav.style.opacity = inView ? '1' : '0';\n        });\n    }, { threshold: 0.01 });\n    wrapObs.observe(wrapper);\n\n    \/* Keyboard navigation support *\/\n    window.addEventListener('keydown', function(e) {\n        var r = wrapper.getBoundingClientRect();\n        var inView = r.bottom > 0 && r.top < window.innerHeight;\n        if (!inView) return;\n\n        if (e.key === 'ArrowDown' || e.key === 'PageDown') {\n            e.preventDefault();\n            goTo(current + 1);\n        }\n        if (e.key === 'ArrowUp' || e.key === 'PageUp') {\n            e.preventDefault();\n            goTo(current - 1);\n        }\n    });\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":17486,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-155441","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/test.mylittlehome.com.sa\/en\/wp-json\/wp\/v2\/pages\/155441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.mylittlehome.com.sa\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/test.mylittlehome.com.sa\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/test.mylittlehome.com.sa\/en\/wp-json\/wp\/v2\/users\/17486"}],"replies":[{"embeddable":true,"href":"https:\/\/test.mylittlehome.com.sa\/en\/wp-json\/wp\/v2\/comments?post=155441"}],"version-history":[{"count":0,"href":"https:\/\/test.mylittlehome.com.sa\/en\/wp-json\/wp\/v2\/pages\/155441\/revisions"}],"wp:attachment":[{"href":"https:\/\/test.mylittlehome.com.sa\/en\/wp-json\/wp\/v2\/media?parent=155441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}