Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
2/10
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment
2/10

Adjustable Triangle Cleaning Mop, 180 Degree Rotating Attachment

$24.95
$49.90
Save $24.95
ColorBlue
Please select a color
Quantity

No need to climb stairs or bend down to clean.Save your time and effort.


The mop head rotates 180 degrees, and any corner can be easily cleaned.
Adjustable length,whether it is on the ceiling or under the sofa, it can be stretched freely.

features

The premium chenille mop head is thick and soft, with super absorbent and vacuuming ability.

It's with tightness adjustment buckles on both sides, easy to install - Install or change with a gentle pull.

It is telescopic, with lock structure which is loose at left and tight at right, and the adjustable range is 59-90 cm and 59-132cm, which is available to both the elderly and the child.

There is a hanging hole at the end of the handle for easy hanging and draining for convenient storage.

180 degree rotatable, triangular mop easy to reach hard-to-reach corner, can be used for cleaning bathtub, toilet surface and back, mirror, glass, ceiling, etc.

Specification:

Length: 54-90cm
Material: chenille + PP + iron
Color: Green/Purple/Blue 

Package Includes:

1 * Mop
Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.