🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control
🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control

🔥Hot Sale 50% OFF🎁Portable Oscillating Fan with Remote Control

Price
$179.99
$89.99
Save  50%
Color
Please select a color
Quantity
Worldwide shipping
Free returns
24/7 customer support
Secure payments

FEATURES

4 WIND SPEED MODES - Use the included remote control to easily adjust the airflow from across the room. Choose from 4 wind speed settings to adjust comfort whether you're working, relaxing, or sleeping.

MULTI-ANGLE ADJUSTABLE - Enjoy all-around cooling with the multi-angle adjustable design. Direct airflow in any direction you need, delivering efficient airflow in any environment.

DUAL HOOK DESIGN - This space-saving fan includes two built-in hooks and a base, offering multiple placement options—hang it in a tent, place it on a table, or easily secure it anywhere.

ULTRA-LONG BATTERY LIFE - This fan is equipped with a 20,000mAh high-capacity battery, providing extended runtime on a single charge. Ideal for camping, power outages, or travel.

QUIET OPERATION - Runs quietly without noise, won't disturb your rest, suitable for overnight use, outdoor activities, or as a personal cooling station.

SPECIFICATIONS

Color: Orange, Blue, Black, Green

Battery Capacity: 20000mAh

Wind Speed Modes: 4

Package Includes: 1* Portable Oscillating Fan with Remote Control

NOTES

Please fully charge the fan before first use.

Color may not appear as exactly as in real life due to variations between the computer monitors.

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.