Large Mouse Pad and Keyboard Wrist Rest, Desk Pad for Keyboard and Mouse, 4-in-1 Large Gaming Mouse Pad with Wrist Support - Retro Art

Large Mouse Pad and Keyboard Wrist Rest, Desk Pad for Keyboard and Mouse, 4-in-1 Large Gaming Mouse Pad with Wrist Support - Retro Art

$19.99
500 sold
Color : Topographic Contour
Quantity
people are viewing this right now
Description
  • 【Ergonomic Design】This mouse pad with wrist support set designed with memory foam and soft smooth material to the pads, lightweight comfortable and durable for your daily work life.
  • 【 Stitched Edges】The soft and dense nature rubber base keeps this extending desk mouse pad firmly in place. Just immerse into your work or games without worrying about the annoying mouse pad movement.
  • 【Smooth Surface】The smooth fabric allows you ease moving your mouse easily and at the same time precisely locate it, and give your hand a comfortable environment to operate your mouse. Optimized for fast movement while maintaining excellent speed and control during your work or game. Compatible with mechanical and optical mice.
  • 【Waterproof and Easy to Clean】 Equipped with waterproof coating, effectively prevents damage from spilled drinks or other accidents. When liquid splashes on the coating surface, it will form into water drops and slide down. Easy to clean without delaying your work or game.
  • 【4-in-1 Mouse Pad Set】 Ergonomic mouse pad includes Large desk pad(35.4×15.75 inch), Keyboard wrist rest(17.32" x 3.15" x 0.98"), Mouse wrist rest(5.4" x 3.15" x 0.98"),Cup coaster(3.9" x 3.9"). Extended desk pad which is large enough to fit a full-sized keyboard and mouse, providing plenty of space for gaming or office work, and keeping a clean, uncluttered desk.
  • Large Mouse Pad and Keyboard Wrist Rest, Desk Pad for Keyboard and Mouse, 4-in-1 Large Gaming Mouse Pad with Wrist Support - Retro art. We will always pursue fashion and hope that these designs will appeal to you! At YUNOBLE, We strictly control every link from product selection, production, quality inspection to sales. We always insist on delivering the best products to every customer around the world.

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.