{"product_id":"waterwipes-baby-wipes-offer-2-1-free-exp-30-05-2026","title":"ووتر وايبس | مناديل مبللة للأطفال | عرض اشترِ ٢ واحصل على ١ مجانًا | تاريخ انتهاء الصلاحية ٢٤\/٠٩\/٢٠٢٦","description":"\u003ch1\u003eمناديل ووتر وايبس 2+1 مجانًا عبوات من 60 منديل \u003cspan style=\"color: rgb(255, 42, 0);\"\u003eتاريخ انتهاء الصلاحية 24\/09\/2026\u003c\/span\u003e\u003c\/h1\u003e\n\u003cp\u003e\u003c!-- \/snippets\/product-video.html --\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n  .product-video-wrap {\n    position: relative;\n    width: 100%;\n    aspect-ratio: 9 \/ 16;\n    border-radius: 12px;\n    overflow: hidden;\n    background: #000;\n  }\n  .product-video-wrap .pv-video {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    cursor: pointer;\n  }\n  .product-video-wrap .pv-sound {\n    position: absolute;\n    top: 12px;\n    right: 12px;\n    width: 44px;\n    height: 44px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background: rgba(60, 60, 60, 0.25);\n    border: 1px solid rgba(255, 255, 255, 0.18);\n    border-radius: 999px;\n    cursor: pointer;\n    transition: background .2s ease, transform .1s ease;\n    z-index: 2;\n    backdrop-filter: blur(6px);\n    -webkit-backdrop-filter: blur(6px);\n    touch-action: manipulation;\n  }\n  .product-video-wrap .pv-sound:hover { background: rgba(60, 60, 60, 0.35); }\n  .product-video-wrap .pv-sound:active { transform: scale(0.96); }\n  .product-video-wrap .pv-sound:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }\n  .product-video-wrap .pv-icon { pointer-events: none; }\n\u003c\/style\u003e\n\u003cdiv class=\"product-video-wrap\"\u003e\u003cvideo class=\"pv-video\" playsinline=\"\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" preload=\"metadata\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/your-thumbnail.jpg\"\u003e\n    \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/928b1eca24614116b07a6e3f44693021.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e \u003cbutton class=\"pv-sound\" aria-label=\"تبديل الصوت\" aria-pressed=\"false\"\u003e \u003csvg class=\"pv-icon pv-icon-unmuted\" viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" style=\"display: none; stroke: #fff; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;\"\u003e\n      \u003cpath d=\"M11 5L6 9H2v6h4l5 4V5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M15 9a3 3 0 0 1 0 6\"\u003e\u003c\/path\u003e\u003cpath d=\"M17.5 7.5a6 6 0 0 1 0 9\"\u003e\u003c\/path\u003e\n    \u003c\/svg\u003e \u003csvg class=\"pv-icon pv-icon-muted\" viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" style=\"stroke: #fff; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;\"\u003e\n      \u003cpath d=\"M11 5L6 9H2v6h4l5 4V5z\"\u003e\u003c\/path\u003e\u003cline x1=\"16\" y1=\"9\" x2=\"22\" y2=\"15\"\u003e\u003c\/line\u003e\u003cline x1=\"22\" y1=\"9\" x2=\"16\" y2=\"15\"\u003e\u003c\/line\u003e\n    \u003c\/svg\u003e \u003c\/button\u003e \u003cscript\u003e\n    (function () {\n      const wrap = document.currentScript.parentElement;\n      const video = wrap.querySelector('.pv-video');\n      const btn = wrap.querySelector('.pv-sound');\n      const iconMuted = btn.querySelector('.pv-icon-muted');\n      const iconUnmuted = btn.querySelector('.pv-icon-unmuted');\n      if (!video) return;\n\n      \/\/ --- detect touch\/mobile (coarse pointer covers most mobiles)\n      const isMobile = (('ontouchstart' in window) || navigator.maxTouchPoints \u003e 0 || matchMedia('(pointer:coarse)').matches);\n\n      \/\/ --- helpers\n      const setMuted = (on) =\u003e {\n        video.muted = on;\n        video.defaultMuted = on;\n        if (on) video.setAttribute('muted',''); else video.removeAttribute('muted');\n        syncIcon();\n      };\n      const syncIcon = () =\u003e {\n        const m = video.muted;\n        iconMuted.style.display = m ? 'block' : 'none';\n        iconUnmuted.style.display = m ? 'none' : 'block';\n        btn.setAttribute('aria-pressed', (!m).toString());\n      };\n      const tryPlay = async () =\u003e { try { await video.play(); return true; } catch { return false; } };\n      const tryPause = () =\u003e { try { video.pause(); } catch {} };\n      const startWithAudio = async () =\u003e { setMuted(false); const ok = await tryPlay(); if (!ok || video.muted) setMuted(true); };\n\n      \/\/ --- state\n      let inView = false, userPaused = false, pausedBySystem = false, gestureApproved = false;\n\n      \/\/ --- boot\n      video.setAttribute('playsinline',''); video.setAttribute('webkit-playsinline',''); video.playsInline = true;\n      setMuted(true);\n\n      if (!isMobile) {\n        \/\/ desktop → start muted immediately\n        tryPlay();\n      } else {\n        \/\/ mobile → HARD-GATE any premature playback\n        \/\/ remove runtime autoplay and stop any early starts\n        try { video.autoplay = false; } catch {}\n        const blockIfOffscreen = () =\u003e { if (!inView) tryPause(); };\n        video.addEventListener('play', blockIfOffscreen);\n        video.addEventListener('playing', blockIfOffscreen);\n        video.addEventListener('timeupdate', blockIfOffscreen);\n      }\n\n      \/\/ --- capture a real user gesture (scroll\/touch\/tap). We DO NOT play here.\n      const approve = () =\u003e {\n        gestureApproved = true;\n        \/\/ if already in view when gesture happens, start now (with audio)\n        if (isMobile \u0026\u0026 inView \u0026\u0026 !userPaused) startWithAudio();\n        window.removeEventListener('pointerdown', approve, passiveOnce);\n        window.removeEventListener('touchstart', approve, passiveOnce);\n        window.removeEventListener('scroll', approve, passiveScroll);\n        window.removeEventListener('touchmove', approve, passiveScroll);\n      };\n      const passiveOnce = { once:true, passive:true };\n      const passiveScroll = { passive:true };\n      window.addEventListener('pointerdown', approve, passiveOnce);\n      window.addEventListener('touchstart', approve, passiveOnce);\n      window.addEventListener('scroll', approve, passiveScroll);\n      window.addEventListener('touchmove', approve, passiveScroll);\n\n      \/\/ --- sound button\n      btn.addEventListener('click', (e) =\u003e {\n        e.preventDefault();\n        if (isMobile \u0026\u0026 !inView) return; \/\/ never start off-screen on mobile\n        if (video.muted) {\n          gestureApproved = true; \/\/ button is a gesture\n          startWithAudio();\n        } else {\n          setMuted(true);\n        }\n      });\n\n      \/\/ --- tap video to play\/pause\n      video.addEventListener('click', (e) =\u003e {\n        if (isMobile \u0026\u0026 !inView) { e.preventDefault(); e.stopPropagation(); return; }\n        if (video.paused) {\n          userPaused = false;\n          if (isMobile) {\n            if (gestureApproved) startWithAudio(); else tryPlay(); \/\/ iOS may still need the gesture; we prioritize audio if allowed\n          } else {\n            tryPlay();\n          }\n        } else {\n          userPaused = true;\n          video.pause();\n        }\n      });\n\n      \/\/ --- visibility gate (ONLY start mobile when visible + gesture approved)\n      function enterView() {\n        inView = true;\n        if (userPaused) return;\n        if (isMobile) {\n          if (gestureApproved) startWithAudio(); \/\/ scroll\/touch happened → audio allowed\n          \/\/ else wait; we'll start once approve() runs\n        } else {\n          tryPlay(); \/\/ desktop stays muted\n        }\n      }\n      function exitView() {\n        inView = false;\n        if (!video.paused) { pausedBySystem = true; video.pause(); }\n        setMuted(true);\n      }\n\n      if ('IntersectionObserver' in window) {\n        const io = new IntersectionObserver(([entry]) =\u003e {\n          if (!entry) return;\n          entry.isIntersecting ? enterView() : exitView();\n        }, { threshold: 0.35 });\n        io.observe(wrap);\n      }\n\n      \/\/ --- tab visibility\n      document.addEventListener('visibilitychange', () =\u003e {\n        if (document.hidden) {\n          if (!video.paused) { pausedBySystem = true; video.pause(); }\n        } else if (pausedBySystem \u0026\u0026 inView \u0026\u0026 !userPaused) {\n          if (isMobile) { if (gestureApproved) startWithAudio(); }\n          else { tryPlay(); }\n          pausedBySystem = false;\n        }\n      });\n    })();\n  \u003c\/script\u003e\u003c\/div\u003e\n\u003cp\u003eتنصح القابلات* بمناديل ووتروايبس لحالات طفح الحفاض أو حساسية الجلد\u003c\/p\u003e\n\u003cp\u003eصُنعت مناديل ووتروايبس من 99.9% ماء وقطرة من خلاصة الفاكهة. يوصي بها 97% من القابلات*، لاستخدامها على بشرة حديثي الولادة، وكبديل مناسب للقطن والماء. نحن المناديل الوحيدة المعتمدة من قبل Allergy UK والجمعية الفرنسية للوقاية من الحساسية بالإضافة إلى حصولها على ختم موافقة الجمعية الوطنية للإكزيما في أمريكا. كل منديل يستخدم ماء أيرلندي منقى ومفلتر ومعالج.\u003cbr\u003e\u003cem\u003e*المصدر: دراسة سبارك البحثية على 102 قابلة، أكتوبر - نوفمبر 2014.\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"صندوق ووتروايبس الضخم القابل للتحلل الحيوي المكون من 12 عبوة\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1869\/2077\/files\/Screen_Shot_2021-11-23_at_5.43.29_PM_1024x1024.png?v=1637660626\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eالمكونات:\u003c\/strong\u003e\u003cbr\u003eماء (أكوا) 99.9% ومستخلص بذور الحمضيات جرانديس (الجريب فروت)*\u003cbr\u003e\u003cem\u003e*يحتوي على آثار من كلوريد البنزالكونيوم\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eإرشادات الاستخدام\u003c\/strong\u003e\u003cbr\u003eمناديل ووتروايبس هي منتج طازج ونقي. نوصي بتخزين مناديلك مقلوبة رأسًا على عقب حتى الفتح وفتح عبوة واحدة في كل مرة. استخدمها في غضون 4 أسابيع من الفتح وأعد إغلاقها بعد كل استخدام.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eهل تعلم؟\u003c\/strong\u003e\u003cbr\u003eمناديل ووتروايبس هي أنقى مناديل لإزالة المكياج في العالم. إنها لا تلسع أو تجفف بشرتك أبدًا لأنها مصنوعة بشكل طبيعي باستخدام 99.9% ماء و0.1% فقط من خلاصة الفاكهة.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"مناديل ووتروايبس\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0052\/4392\/8664\/files\/waterwipes_6708a2d3-dcd6-442c-b162-77ce485bc0ab_2048x2048.jpg?v=1696867836\"\u003e\u003c\/p\u003e","brand":"WaterWipes","offers":[{"title":"Default Title","offer_id":48450274164979,"sku":null,"price":10.0,"currency_code":"JOD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0052\/4392\/8664\/files\/WATERWIPES_99cbcecd-8891-482e-965c-5a3d6c7c3928.jpg?v=1783153868","url":"https:\/\/www.bambinijo.com\/ar\/products\/waterwipes-baby-wipes-offer-2-1-free-exp-30-05-2026","provider":"BambiniJO","version":"1.0","type":"link"}