Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
1/6
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
Yarn Stand Holder Dispenser for Knitting
1/6

Yarn Stand Holder Dispenser for Knitting

Wooden Spinning Yarn & Thread Holder for Crocheting

$18.99
$38.99
Save $20.00
1 sold
Quantity

Wooden Yarn Holder with Twirling Mechanism - SUPER GIFT for any knitting or crocheting lover !




NATURAL WOOD DESIGN: It's made of natural wood, which gives it a classic, vintage look.Good quality materials make it sturdy and durable.Smooth surface for smoother weaving.

NO MORE TANGLED YARN: we offer this wooden yarn holder to make crochet easier for knitters everywhere. Whether you're an adult or a knitting-obsessed kid, this crafting supply is a must-have if you want to prevent your yarn from tangling or falling to the floor.

MULTIPURPOSE: It is not only a yarn ball holder, but can also be used as a storage rack in the kitchen and tabletop. Plastic wrap roll holder, household paper roll holder, etc

USAGE: Used to hold yarn and to prevent yarn from falling on floor while you knitting or crocheting.Simply attach a skein of yarn to the holder and watch it unravel hassle-free.

IDEAL SIZE: Suitable size 7x3.4 inches. Our yarn skein holder is lightweight and doesn`t take much place. You may easily take it with you whenever you go.It is a perfect Gift for MOM.



Multiple Usage:
1. Yarn ball holder
2. Toilet paper roll holder
3. Food storage bag roll holder

Specifications:
Material: Wood
Color: Light brown as the image
Size: About height 18cm / 7.08in , width 8.5cm / 3.35in

Package includes:
1 x yarn ball holder




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.