Buy 3 Get 1 Free. 8%OFF,Code is VCS08. Free shipping over $55 . No Tax. 【Click】
1 / 15
38% OFF
VCS

Cross Stitch Masking Tape

$4.30 $6.99
53 sold
Quantity
Qty 1042 in stock

👉👉👉Order 50+, Free Worldwide Shipping

👉👉👉No tax

👉👉👉 Shipping time: about 15 to 20 days

🔔🔔If your order has not been shipped after 3 days, the warehouse has no stock and needs to wait for stock,it takes about a week to wait for stock , but you can send the customer service email to request a replacement product.

Name: Masking tape
Specifications: length 20m*width 5cm
Temperature resistance: 80°C

Features:
1. Masking tape is made of crepe paper and coated with special pressure-sensitive adhesive. It has the characteristics of protection, fixation, heat resistance, and impermeability.
2. Masking tape has strong applicability and diverse functions. It is mainly used for hand-made, art painting, decoration masking, car spray painting masking, etc. For example, you can paste it on the rolling tube and embroidery cloth for storage and storage when sewing cross stitch, so as to prevent the embroidery cloth from becoming soft and wrinkled, and at the same time It can prevent the embroidery fabric from slipping off the edge; it can be used as a protective film for diamond painting to protect the edges from dust and dirt; it can be used to assist in painting, if you want to leave a background color in one place, paste textured paper for painting, and after painting , just tear it off; you can also use it as a label, write on the tape, and mark it as you like.
3. The edge of the tape is flat and easy to peel off, and the clean shell isolation paper does not leave glue to protect the stickers.
4. Pull the appropriate length and apply lateral force to easily tear off the masking tape.

Package Content:

1*masking tape

At vipcrossstitch,we have made sure that the items are delivered to our customers as quickly as possible. You will receive your order within 15 to 20 working days from the date of your order.

Verification

 A confirmation email will be sent to you once the order has been authorized and confirmed. We will prepare your order immediately after verification. During this period it is difficult for us to change or cancel your order. However, we will do our best to support your request.

Processing/Shipping

It usually takes 1-2 working days for us to process your order (if all items are available). Please note that this does not include holidays and weekends.

If you encounter the phenomenon that the product is out of stock, you need to wait 4 to 6 days to start shipping,thank you for your patience, but you can send the customer service email to request a replacement product.

👉 Notice:

After the item is shipped, you will receive an email informing you that the product has shipped, the email will include the shipping address, tracking number, carrier, product purchased.

If you haven't received the shipping email (or tracking number) after 5 days,that's because one of the products you purchased is not in stock and therefore not shipped,you can send an email to the customer service

email (service@vipcrossstitch.com) to ask if the product can subcontract for delivery, or replace an out-of-stock product with another.

Due to the time difference between countries, our customer service has no way to reply in time, but we will reply within 24 hours, except Saturday and Sunday.

Please note that the items you ordered may be shipped from different warehouses,or because the product is not in stock, so they may not arrive together in the same package or the same day. When we ship, if the

product is shipped in two packages, you will receive an email with the shipping address, tracking number, carrier, and product purchased.

🔔🔔🔔If the product in the package you received is incomplete, it is because we have divided the product into two packages. If you have any questions, you can contact our customer service staff (service@vipcrossstitch.com)

Transportation time Note:

(Estimated time of arrival) 15-20 working days

However, we have no control over the process and timeline of customs clearance.It is not uncommon for packages to be held by customs for 2 to 4 weeks in transit, especially during peak delivery periods.

* Shipping time is estimated and starts from the shipping date, not the date of the order. This may take longer than expected due to invalid addresses, customs clearance procedures, or other reasons.

* Please send a ticket within 6 months of shipping if the package does not arrive on time. Our representative will get back to you within 24 hours. Note that overdue requests may not be accepted.

  • Please make sure that your address details are correct. If you did not receive our product at the wrong address, we will only refund half or you will have to pay the shipping cost from us to receive the package again.

Affected by Covid-19 there will be delays in delivery.

Track Your Order

It may take up to 5 business days after your order has shipped for your tracking information to become available online (it might take longer depending on how fast the postal services are processing shipments).

Package logistics inquiry link:

https://www.17track.net/en

You May Also Like Don't Like These?
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.
const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation);