LED Neck Reading Light, Bed Reading Book Light, 3 Colors, 3 Levels of Brightness, Comfortable and Lightweight, Flexible Hanging Neck Light for Reading, Camping and Repairing (No Weekend Shipping)

LED Neck Reading Light
$19.99 $20.99 Save $1.00
Color:  Black
Quantity
Share the love
Free worldwide shipping
Free returns
Sustainably made
Secure payments
Description

About this item

[Soft and comfortable design]: made of soft rubber, can be bent at will without deformation. The thin soft tube design fits the neck, comfortable and non-binding, easy to use neck reading light.

[Intelligent eye passport bright]: 6500K white light close to natural sunlight, suitable for night reading; 3000K warm yellow light eye protection, suitable for mobile phone use. Outdoor sports such as running, fishing, climbing or repairing the car, the use of white light lighting is sufficient, without interfering with the surrounding people, to achieve hands free.

[Multiple lighting options]: three brightness adjustment, the first 20% brightness, the second 50% brightness, the third 100% brightness. Meet the needs of different occasions; two colour temperature modes to choose from, 6500K white light imitation sunlight, suitable for refreshing reading; 3000K warm yellow light such as the morning sun, eye care and eye health.

[Flexible deformation design]: 360-degree bending metal hose and environmentally friendly TPE soft rubber shell, a variety of modelling freely adjustable, independent control of the lamp head, flexible response to a variety of environments.

[Long battery life]: equipped with practical 800mAh lithium battery, high brightness 5 hours, medium brightness 8 hours, low brightness 25 hours of life, long lasting and durable, to provide you with a long time lighting protection.

[Shipping& Delivery]:All of our goods are shipped directly from our US warehouse. Occasionally, there may be instances where the logistics information is not updated or shows a ‘Delivered’ status, even though the package has not yet arrived. In this case, please allow us to assist you in resolving the issue!

[30-Day Guarantee] : We offer 30 Day Guarantee. If you are not satisfied with our product or there are any issue with ORDER, please Give us a chance to make it right to you Before leaving a review! Our Customer's Satisfaction is our priority, So please contact our customer service or send a message n TikTok shop chat and we will be happy to help with :any issue with order.

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.