Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
1/10
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
Last Day 50% off⏰2 in 1 Floor Scrub Brush
1/10

Last Day 50% off⏰2 in 1 Floor Scrub Brush

$33.98
$67.96
Save 50%
5997 sold
🔥Buy 1 Get 1 Free
Please select a 🔥buy 1 get 1 free
2 Pcs❤️Second One
Please select a 2 pcs❤️second one
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

This 2 In 1 Floor Scrub Brush is designed to reach any corner in seconds, and its tough bristles ensure deep cleaning on any surface. Enjoy effortless cleaning with this brush's ergonomic handle and 120-degree swivel head, ideal for accessing tight corners.

The 2 In 1 Floor Scrub Brush is a powerful cleaning tool designed to get into every corner and gap. Its pointed V-shaped head, 120-degree swivel, and tough bristles ensure deep cleaning with ease. Its removable head ensures easy washing and cleaning, making it ideal for all types of messes. Experience fast and efficient deep cleaning with this must-have tool.

Features:

Gentle and Effective: Our 2 In 1 Floor Brush Scrub Brush is designed to be both gentle and effective, capable of removing dirt and grime without damaging surfaces such as glass and tiles thanks to its rubber bristles.

V-shape Design: Our specially crafted V-shaped design enables access to deficiencies in any corner or crevice within moments, eliminating the need for unduly hard blows that could harm your home.

120° Rotating Head: Clean more quickly and effortlessly with the 120° rotating head. This design ensures simple access to the most difficult-to-reach places.

Removable: When needing to store the 2 In 1 scrub brush, one can conveniently detach the head and handle to facilitate both storage and cleaning of the brush head.

46.4’’ Adjustment Long Handle: This 2 In 1 Floor Scrub Brush features a long-handled adjustable pole ranging from 23.23’’ to 46.4’’, providing users with a comfortable and efficient cleaning experience without the need to bend over.

Package Includes:

2 in 1 Floor Scrub Brush