{"product_id":"no-drill-door-stopper-for-secure-everyday-door-control","title":"No-Drill Door Stopper For Secure Everyday Door Control","description":"\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Oswald:wght@500;600;700\u0026family=Inter:wght@400;500;600\u0026display=swap');\n\n.bwc-page{background:#fff;font-family:'Inter',Arial,Helvetica,sans-serif;color:#141414;padding:0;margin:0;-webkit-font-smoothing:antialiased}\n.bwc-page *{box-sizing:border-box}\n.bwc-page .bwc-container{max-width:100%;width:100%;margin:0;padding:0}\n.bwc-page .bwc-card{background:#fff;border:none;padding:0;overflow:hidden}\n\n.bwc-page .bwc-teeth{display:block!important;height:16px!important;width:100%!important;background:\n  linear-gradient(135deg,#141414 25%,transparent 25%) 0 0\/16px 16px,\n  linear-gradient(225deg,#141414 25%,transparent 25%) 0 0\/16px 16px,\n  #fff!important;}\n.bwc-page .bwc-teeth.inv{background:\n  linear-gradient(135deg,#fff 25%,transparent 25%) 0 0\/16px 16px,\n  linear-gradient(225deg,#fff 25%,transparent 25%) 0 0\/16px 16px,\n  #141414!important;}\n\n.bwc-page .bwc-top{padding:26px 26px 0}\n.bwc-page .bwc-eyebrow{font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#6b6b6b;text-align:center;margin:0 0 8px}\n.bwc-page .bwc-h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:28px;text-align:center;color:#111;margin:0 0 18px;line-height:1.22;letter-spacing:-.2px;text-transform:uppercase}\n\n.bwc-page .bwc-hero{background:#141414;color:#fff;padding:28px 24px;margin:0;position:relative}\n.bwc-page .bwc-hero p{margin:0;opacity:.88;line-height:1.7;font-size:15px;color:#fff!important}\n.bwc-page .bwc-hero p+p{margin-top:12px}\n.bwc-page .bwc-hero ul{margin:16px 0 0;padding:0;list-style:none}\n.bwc-page .bwc-hero ul li{position:relative;padding-left:22px;margin:0 0 8px;font-size:14px;line-height:1.5;opacity:.92;color:#fff!important}\n.bwc-page .bwc-hero ul li:before{content:\"✔\";position:absolute;left:0;top:0;color:#fff;font-size:12px}\n\n.bwc-page .bwc-img-wrap{width:100%;margin:0;overflow:hidden;background:#f4f4f4}\n.bwc-page .bwc-img-wrap img{width:100%;height:auto;display:block;margin:0}\n\n.bwc-page .bwc-body{padding:0 26px}\n\n.bwc-page .bwc-section-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.02em;color:#111;margin:38px 0 6px;padding-bottom:12px;border-bottom:3px solid #141414;line-height:1.2}\n.bwc-page .bwc-lead{font-size:15px;line-height:1.75;color:#3d3d3d;margin:0 0 18px}\n\n.bwc-page .bwc-carousel{position:relative;margin:22px 0 30px}\n.bwc-page .bwc-carousel-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 4px 14px;scrollbar-width:none;-ms-overflow-style:none}\n.bwc-page .bwc-carousel-track::-webkit-scrollbar{display:none}\n.bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:start;background:#fff;display:flex;flex-direction:column}\n.bwc-page .bwc-carousel-imgs{display:flex}\n.bwc-page .bwc-carousel-imgs img{flex:1 1 0;width:100%;height:auto;display:block;aspect-ratio:1\/1;object-fit:cover;min-width:0}\n.bwc-page .bwc-carousel-text{padding:18px;flex:1}\n.bwc-page .bwc-carousel-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#141414;color:#fff;font-family:'Oswald',sans-serif;font-size:12px;font-weight:600;margin-bottom:10px}\n.bwc-page .bwc-carousel-text h3{margin:0 0 6px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.01em;font-size:15px;color:#111;font-weight:600;line-height:1.3}\n.bwc-page .bwc-carousel-text p{margin:0;color:#4a4a4a;font-size:13px;line-height:1.6}\n.bwc-page .bwc-carousel-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px}\n.bwc-page .bwc-carousel-arrow{width:36px;height:36px;border:2px solid #141414;background:#fff;color:#141414;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;flex-shrink:0;padding:0;line-height:1}\n.bwc-page .bwc-carousel-arrow:hover{background:#141414;color:#fff}\n.bwc-page .bwc-carousel-dots{display:flex;gap:8px}\n.bwc-page .bwc-carousel-dot{width:8px;height:8px;border-radius:50%;background:#d4d4d4;cursor:pointer;transition:background .2s;padding:0;border:0}\n.bwc-page .bwc-carousel-dot.active{background:#141414}\n\n.bwc-page .bwc-review-title{font-family:'Oswald',sans-serif;font-size:14.5px;font-weight:600;text-transform:uppercase;letter-spacing:.01em;color:#111;margin:0 0 6px}\n.bwc-page .bwc-review-stars{color:#141414;font-size:13px;letter-spacing:2px;margin:0 0 6px}\n.bwc-page .bwc-review-quote{font-size:13px;line-height:1.6;color:#4a4a4a;margin:0 0 8px;font-style:italic}\n\n.bwc-page .bwc-review-carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:start}\n.bwc-page .bwc-review-mini{padding:12px 14px;background:#fff}\n.bwc-page .bwc-review-mini .bwc-review-title{font-size:13px;margin-bottom:4px}\n.bwc-page .bwc-review-mini .bwc-review-quote{font-size:13px;line-height:1.6;margin-bottom:0}\n\n.bwc-page .bwc-media-block{margin:22px 0 6px;overflow:hidden;background:#f4f4f4}\n.bwc-page .bwc-media-block img,.bwc-page .bwc-media-block video{width:100%;height:auto;display:block}\n\n.bwc-page .bwc-spec{margin-top:36px;background:#141414;padding:0}\n.bwc-page .bwc-spec h2{color:#fff;margin:0;padding:20px 24px;font-size:19px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #3a3a3a}\n.bwc-page .bwc-table{width:100%;border-collapse:collapse;background:#fff}\n.bwc-page .bwc-table td{padding:14px 20px;border-bottom:1px solid #e4e4e4;vertical-align:top;line-height:1.5;font-size:14.5px;color:#222}\n.bwc-page .bwc-table tr:last-child td{border-bottom:0}\n.bwc-page .bwc-table td:first-child{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#111;width:34%;background:#f5f5f5;font-size:12.5px}\n\n.bwc-page .bwc-faq{margin-top:36px}\n.bwc-page .bwc-faq-item{border-bottom:1px solid #e4e4e4;padding:16px 2px}\n.bwc-page .bwc-faq-item:first-child{padding-top:0}\n.bwc-page .bwc-faq-q{font-family:'Oswald',sans-serif;font-size:14.5px;text-transform:uppercase;letter-spacing:.01em;color:#111;font-weight:600;margin:0;display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:0;cursor:pointer;text-align:left}\n.bwc-page .bwc-faq-q .qmark{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#141414;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif}\n.bwc-page .bwc-faq-q .qtext{flex:1}\n.bwc-page .bwc-faq-q .bwc-faq-toggle{flex:0 0 auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:#141414;transition:transform .2s}\n.bwc-page .bwc-faq-item.open .bwc-faq-q .bwc-faq-toggle{transform:rotate(45deg)}\n.bwc-page .bwc-faq-a{font-size:14px;line-height:1.65;color:#4a4a4a;margin:8px 0 0;padding-left:32px;display:none}\n.bwc-page .bwc-faq-item.open .bwc-faq-a{display:block}\n\n.bwc-page .bwc-cta{margin-top:36px;background:#141414;color:#fff;padding:40px 24px;text-align:center}\n.bwc-page .bwc-cta h2{margin:0 0 12px;font-size:24px;line-height:1.25;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-weight:700;color:#fff!important}\n.bwc-page .bwc-cta p{margin:0 auto 22px;line-height:1.65;max-width:560px;opacity:.85;font-size:14.5px;color:#fff!important}\n.bwc-page .bwc-btn{display:inline-block;background:#fff;color:#111!important;padding:15px 40px;font-family:'Oswald',sans-serif;font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:2px solid #fff;cursor:pointer}\n\n.bwc-page .bwc-bottom-pad{height:26px}\n\n@media(max-width:768px){\n.bwc-page .bwc-container{padding:0}\n.bwc-page .bwc-top{padding:20px 16px 0}\n.bwc-page .bwc-body{padding:0 16px}\n.bwc-page .bwc-h1{font-size:21px}\n.bwc-page .bwc-hero{padding:20px 16px}\n.bwc-page .bwc-section-title{font-size:19px;margin-top:30px}\n.bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%}\n.bwc-page .bwc-carousel-track{gap:0}\n.bwc-page .bwc-table td{display:block;width:100%;padding:10px 16px}\n.bwc-page .bwc-table td:first-child{width:100%;border-bottom:0;padding-bottom:2px}\n.bwc-page .bwc-faq-a{padding-left:0;margin-top:6px}\n.bwc-page .bwc-btn{display:block;width:100%;text-align:center}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"bwc-page\"\u003e\n\u003cdiv class=\"bwc-container\"\u003e\n\u003cdiv class=\"bwc-card\"\u003e\n\n\u003c!-- ① 标题区 --\u003e\n\u003cdiv class=\"bwc-top\"\u003e\n\u003cp class=\"bwc-eyebrow\"\u003eNo-Drill Door Stopper For Secure Everyday Door Control\u003c\/p\u003e\n\u003ch1 class=\"bwc-h1\"\u003eKeep Doors Open. Protect Walls. Skip The Drilling.\u003c\/h1\u003e\n\u003c\/div\u003e\n\n\u003c!-- ② Hero 横幅 1 --\u003e\n\u003cdiv class=\"bwc-hero\"\u003e\n\u003cp\u003eTired of doors slamming shut, drifting closed, or hitting the wall behind them? This no-drill door stopper provides a simple way to keep your doors securely in position without complicated installation.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-teeth\"\u003e\u003c\/div\u003e\n\u003c!-- ③ 主图：请替换为你自己的产品图 --\u003e\n\u003cdiv class=\"bwc-img-wrap\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/8_24_19.gif?v=1787903433\"\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\n\u003c!-- Hero 横幅 2 + 卖点清单 --\u003e\n\u003cdiv class=\"bwc-hero\"\u003e\n\u003cp\u003eMade from thick, durable ABS material with a non-slip gripping structure, it helps hold doors firmly on everyday floor surfaces while reducing unwanted movement and impact.\u003c\/p\u003e\n\u003cp\u003eSimply clean and dry the installation area, remove the protective backing and stick the holder into position. A practical little upgrade for bedrooms, bathrooms, kitchens, living rooms and home offices.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-teeth\"\u003e\u003c\/div\u003e\n\n\u003c!-- ④ 副图：请替换为你自己的产品图 --\u003e\n\u003cdiv class=\"bwc-img-wrap\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/1_26__1_11zon.webp?v=1787900591\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- ⑤ 功能特性：轮播（3 个核心卖点） --\u003e\n\u003ch2 class=\"bwc-section-title\" style=\"margin-left:26px;margin-right:26px\"\u003eWhy You'll Love It\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\" style=\"margin-left:26px;margin-right:26px\"\u003eThree reasons this little stopper becomes an everyday essential.\u003c\/p\u003e\n\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"2000\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/2_29__2_11zon.webp?v=1787900590\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e1\u003c\/span\u003e\n\u003ch3\u003eNo-Drill Installation\u003c\/h3\u003e\n\u003cp\u003eForget drilling holes into your floors, walls or doors. The adhesive installation makes setup quick and straightforward. Simply clean and dry the surface, remove the protective sheet and place the stopper where you need it.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/3_28__3_11zon.webp?v=1787900591\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e2\u003c\/span\u003e\n\u003ch3\u003eStrong Non-Slip Hold\u003c\/h3\u003e\n\u003cp\u003eDesigned with a hollow anti-slip structure and thick ABS construction, this door stopper helps keep unwanted door movement under control. Its gripping surface is designed to work across common floor types including tile, concrete and wood, giving you dependable everyday door control in different rooms around the home.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/4_26__4_11zon.webp?v=1787900590\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e3\u003c\/span\u003e\n\u003ch3\u003eProtect Doors \u0026amp; Walls\u003c\/h3\u003e\n\u003cp\u003eA door that swings too far can leave unwanted marks on walls, damage handles or slam unexpectedly. Placed in the right position, this stopper helps limit door movement and reduce contact with nearby walls or furniture, making it a practical addition to everyday home organization.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev aria-label=\"Previous slide\"\u003e‹\u003c\/button\u003e\n\u003cdiv class=\"bwc-carousel-dots\" data-dots\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-next aria-label=\"Next slide\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-teeth\" style=\"margin-top:8px\"\u003e\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-body\"\u003e\n\n\u003c!-- Perfect For --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003ePerfect For\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003ePerfect for bedrooms, bathrooms, kitchens, living rooms, home offices, apartments, rental homes and other everyday spaces where you want better control over an interior door. Use it to help keep a door open for airflow, prevent unwanted movement from drafts, reduce accidental door slamming or create a more convenient doorway setup. Its compact no-drill design works naturally with modern homes while keeping installation simple and unobtrusive.\u003c\/p\u003e\n\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/5_23__5_11zon.webp?v=1787900593\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- 规格参数表 --\u003e\n\u003cdiv class=\"bwc-spec\"\u003e\n\u003ch2\u003eProduct Specifications\u003c\/h2\u003e\n\u003ctable class=\"bwc-table\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eProduct Type\u003c\/td\u003e\n\u003ctd\u003eAdhesive Door Stopper\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMaterial\u003c\/td\u003e\n\u003ctd\u003eThick ABS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eInstallation\u003c\/td\u003e\n\u003ctd\u003eNo-Drill Adhesive Installation\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDesign\u003c\/td\u003e\n\u003ctd\u003eAnti-Collision Wedge Stopper\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGrip\u003c\/td\u003e\n\u003ctd\u003eNon-Slip Contact Structure\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSuitable Surfaces\u003c\/td\u003e\n\u003ctd\u003eWood, Tile \u0026amp; Concrete\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eInstallation Method\u003c\/td\u003e\n\u003ctd\u003ePeel \u0026amp; Stick\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMain Function\u003c\/td\u003e\n\u003ctd\u003eHelps Hold Doors Open \u0026amp; Control Door Movement\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eRecommended Use\u003c\/td\u003e\n\u003ctd\u003eBedrooms, Bathrooms, Kitchens, Living Rooms \u0026amp; Offices\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDesign Benefit\u003c\/td\u003e\n\u003ctd\u003eCompact, Easy To Install \u0026amp; Easy To Remove\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\n\u003c!-- Customer Reviews：带星级 --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eCustomer Reviews\u003c\/h2\u003e\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"0\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eSarah M.\u003c\/p\u003e\n\u003cp class=\"bwc-review-stars\"\u003e★★★★★\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"Exactly what I needed for our bedroom door. Installation took almost no time and it keeps the door from slowly closing.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eJessica R.\u003c\/p\u003e\n\u003cp class=\"bwc-review-stars\"\u003e★★★★★\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"I didn't want to drill into the floor, so this was a great solution. It feels sturdy and looks much cleaner than the bulky door stops I've used before.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eAmanda L.\u003c\/p\u003e\n\u003cp class=\"bwc-review-stars\"\u003e★★★★★\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"We have several doors that tend to slam when the windows are open. These have made it much easier to keep them positioned where we want them.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eDaniel K.\u003c\/p\u003e\n\u003cp class=\"bwc-review-stars\"\u003e★★★★★\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"Simple little product that works well. I especially like that it doesn't take up much space and blends into the room.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev aria-label=\"Previous slide\"\u003e‹\u003c\/button\u003e\n\u003cdiv class=\"bwc-carousel-dots\" data-dots\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-next aria-label=\"Next slide\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- FAQ --\u003e\n\u003cdiv class=\"bwc-faq\" data-accordion\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eDo I need to drill holes to install it?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eNo. The stopper uses an adhesive installation method, so there is no drilling required.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eWhat surfaces can it be used on?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eIt is designed for common hard floor surfaces such as wood, tile and concrete. Always make sure the surface is clean and dry before installation.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eHow do I install the stopper?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eClean and dry the desired surface, remove the protective backing and firmly stick the stopper into position.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eCan it help prevent doors from hitting walls?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. When positioned correctly, it helps limit door movement and can reduce the chance of the door or handle contacting a nearby wall.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eCan I remove it when I no longer need it?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The stopper is designed for convenient removal. Remove it carefully from the surface to minimize the chance of leaving adhesive residue.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth inv\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-bottom-pad\"\u003e\u003c\/div\u003e\n\n\u003c!-- ⑩ CTA --\u003e\n\u003cdiv class=\"bwc-cta\"\u003e\n\u003ch2\u003eA Smarter Way To Keep Doors In Place\u003c\/h2\u003e\n\u003cp\u003eNo drilling. No bulky hardware. No complicated installation. Just a compact, non-slip door stopper designed to help control everyday door movement while making your home a little more convenient.\u003c\/p\u003e\n\u003cbutton type=\"button\" class=\"bwc-btn bwc-add-to-cart\" data-fallback-variant=\"VARIANT_ID\"\u003eAdd To Cart Today\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  var carousels = document.querySelectorAll('[data-carousel]');\n  carousels.forEach(function(carousel){\n    var track = carousel.querySelector('[data-track]');\n    var slides = track.querySelectorAll('.bwc-carousel-slide');\n    var dotsWrap = carousel.querySelector('[data-dots]');\n    var prevBtn = carousel.querySelector('[data-prev]');\n    var nextBtn = carousel.querySelector('[data-next]');\n    var activeIndex = 0;\n    var AUTOPLAY_DELAY = parseInt(carousel.getAttribute('data-autoplay'), 10) || 0;\n    var autoplayEnabled = AUTOPLAY_DELAY \u003e 0;\n    var autoplayTimer = null;\n    var carouselInView = false;\n\n    slides.forEach(function(slide, i){\n      var dot = document.createElement('button');\n      dot.type = 'button';\n      dot.className = 'bwc-carousel-dot' + (i === 0 ? ' active' : '');\n      dot.setAttribute('aria-label', 'Go to slide ' + (i + 1));\n      dot.addEventListener('click', function(){\n        goToSlide(i);\n        restartAutoplay();\n      });\n      dotsWrap.appendChild(dot);\n    });\n    var dots = dotsWrap.querySelectorAll('.bwc-carousel-dot');\n\n    function goToSlide(i){\n      var slide = slides[i];\n      track.scrollTo({ left: slide.offsetLeft, behavior: 'smooth' });\n    }\n\n    function updateActive(){\n      var trackRect = track.getBoundingClientRect();\n      var closest = 0, closestDist = Infinity;\n      slides.forEach(function(slide, i){\n        var dist = Math.abs(slide.getBoundingClientRect().left - trackRect.left);\n        if (dist \u003c closestDist) { closestDist = dist; closest = i; }\n      });\n      activeIndex = closest;\n      dots.forEach(function(d, i){ d.classList.toggle('active', i === closest); });\n    }\n\n    var scrollTimer;\n    track.addEventListener('scroll', function(){\n      clearTimeout(scrollTimer);\n      scrollTimer = setTimeout(updateActive, 80);\n    });\n\n    function stepWidth(){\n      if (slides.length \u003e 1) {\n        return slides[1].offsetLeft - slides[0].offsetLeft;\n      }\n      return slides[0].getBoundingClientRect().width;\n    }\n\n    prevBtn.addEventListener('click', function(){\n      track.scrollBy({left: -stepWidth(), behavior:'smooth'});\n      restartAutoplay();\n    });\n    nextBtn.addEventListener('click', function(){\n      track.scrollBy({left: stepWidth(), behavior:'smooth'});\n      restartAutoplay();\n    });\n\n    function nextSlide(){\n      var next = (activeIndex + 1) % slides.length;\n      goToSlide(next);\n    }\n\n    function startAutoplay(){\n      stopAutoplay();\n      if (!autoplayEnabled) return;\n      if (!carouselInView) return;\n      autoplayTimer = setInterval(nextSlide, AUTOPLAY_DELAY);\n    }\n    function stopAutoplay(){\n      if (autoplayTimer) { clearInterval(autoplayTimer); autoplayTimer = null; }\n    }\n    function restartAutoplay(){\n      stopAutoplay();\n      startAutoplay();\n    }\n\n    track.addEventListener('pointerdown', stopAutoplay);\n    track.addEventListener('touchstart', stopAutoplay, {passive:true});\n    track.addEventListener('pointerup', restartAutoplay);\n    track.addEventListener('touchend', restartAutoplay, {passive:true});\n    carousel.addEventListener('mouseenter', stopAutoplay);\n    carousel.addEventListener('mouseleave', restartAutoplay);\n\n    if (autoplayEnabled \u0026\u0026 'IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function(entries){\n        entries.forEach(function(entry){\n          carouselInView = entry.isIntersecting;\n          if (carouselInView) {\n            restartAutoplay();\n          } else {\n            stopAutoplay();\n          }\n        });\n      }, { threshold: 0.4 });\n      io.observe(carousel);\n    }\n\n    updateActive();\n  });\n})();\n\u003c\/script\u003e\n\n\u003cscript\u003e\n(function(){\n  var accordion = document.querySelector('[data-accordion]');\n  if(!accordion) return;\n  var buttons = accordion.querySelectorAll('.bwc-faq-q');\n  buttons.forEach(function(btn){\n    btn.addEventListener('click', function(){\n      var item = btn.closest('.bwc-faq-item');\n      var isOpen = item.classList.contains('open');\n      item.classList.toggle('open', !isOpen);\n      btn.setAttribute('aria-expanded', String(!isOpen));\n    });\n  });\n})();\n\u003c\/script\u003e\n\n\u003cscript\u003e\n(function(){\n  var EXCLUDE_SELECTOR = [\n    '[class*=\"related\"]','[id*=\"related\"]',\n    '[class*=\"recommend\"]','[id*=\"recommend\"]',\n    '[class*=\"upsell\"]','[id*=\"upsell\"]',\n    '[class*=\"cross-sell\"]','[id*=\"cross-sell\"]',\n    '[class*=\"also-like\"]','[id*=\"also-like\"]',\n    '[class*=\"complementary\"]','[id*=\"complementary\"]',\n    '[class*=\"bundle\"]','[id*=\"bundle\"]',\n    '[class*=\"quick-add\"]','[id*=\"quick-add\"]',\n    '[class*=\"quick-buy\"]','[id*=\"quick-buy\"]',\n    '[class*=\"product-card\"]','[class*=\"product-grid-item\"]',\n    '[class*=\"trending\"]','[class*=\"carousel-card\"]'\n  ].join(',');\n\n  function isInsideExcludedWidget(el){\n    return !!el.closest(EXCLUDE_SELECTOR);\n  }\n\n  function findRealAddToCartButton(){\n    var named = document.querySelectorAll('button[name=\"add\"], input[name=\"add\"]');\n    for (var i = 0; i \u003c named.length; i++) {\n      if (!isInsideExcludedWidget(named[i]) \u0026\u0026 !named[i].classList.contains('bwc-add-to-cart')) {\n        return named[i];\n      }\n    }\n\n    var forms = document.querySelectorAll('form[action*=\"\/cart\/add\"]');\n    for (var f = 0; f \u003c forms.length; f++) {\n      if (isInsideExcludedWidget(forms[f])) continue;\n      var btn = forms[f].querySelector('button[name=\"add\"], button[type=\"submit\"], input[type=\"submit\"]');\n      if (btn) return btn;\n    }\n\n    var all = document.querySelectorAll('button, input[type=\"submit\"]');\n    for (var j = 0; j \u003c all.length; j++) {\n      var txt = (all[j].textContent || all[j].value || '').trim().toLowerCase();\n      if (txt === 'add to cart' \u0026\u0026 !all[j].classList.contains('bwc-add-to-cart') \u0026\u0026 !isInsideExcludedWidget(all[j])) {\n        return all[j];\n      }\n    }\n    return null;\n  }\n\n  function bwcAddToCart(btn){\n    var realBtn = findRealAddToCartButton();\n    if (realBtn) {\n      realBtn.click();\n      return;\n    }\n    var fallbackId = btn.getAttribute('data-fallback-variant');\n    if (!fallbackId || fallbackId === 'VARIANT_ID') {\n      alert('Could not find the add-to-cart form on this page.');\n      return;\n    }\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ id: fallbackId, quantity: 1 })\n    }).then(function(){ window.location.href=\"\/es\/cart\"; });\n  }\n\n  document.addEventListener('click', function(e){\n    var btn = e.target.closest('.bwc-add-to-cart');\n    if (!btn) return;\n    e.preventDefault();\n    bwcAddToCart(btn);\n  });\n})();\n\u003c\/script\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"wzh","offers":[{"title":"Black","offer_id":43930664665178,"sku":"NC01712608282755-挡门器-黑色","price":12.98,"currency_code":"USD","in_stock":true},{"title":"Pink","offer_id":43930664697946,"sku":"NC01712608282755-挡门器-粉色","price":12.98,"currency_code":"USD","in_stock":true},{"title":"Blue","offer_id":43930664730714,"sku":"NC01712608282755-挡门器-蓝色","price":12.98,"currency_code":"USD","in_stock":true},{"title":"Green","offer_id":43930664763482,"sku":"NC01712608282755-挡门器-绿色","price":12.98,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/4_4a45e531-2ccd-41e6-9eb6-9d23f02355c8.webp?v=1787890433","url":"https:\/\/sthael.com\/es\/products\/no-drill-door-stopper-for-secure-everyday-door-control","provider":"Sthael","version":"1.0","type":"link"}