🔥Black Friday - Save Up To 20% Off🔥
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
1 / 13
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
DIY Butterfly Acrylic Diamond Painting Hanging Ornaments
0% OFF

DIY Butterfly Acrylic Diamond Painting Hanging Ornaments

1543556.01

$21.99
0 sold
Qty 3000 in stock
Specification:
Origin: Mainland China
Use: Paintings
Material: Acrylic
Product Dimensions: 240.00 x 220.00 x 10.00 mm / 9.45 x 8.66 x 0.39 inches
Diamond Type: Exquisite high-transparency acrylic sheet + crystal diamond shaped diamonds
Project: DIY single-sided diamond application
Packaging: Color box packaging
This project is a DIY diamond painting wall hanging. Once completed, you can hang it in your living room, bedroom, window, balcony, or anywhere else to enjoy it and share it with family and friends!

Note:
Due to different monitor settings and lighting conditions, the actual color of the item may vary slightly from the pictures. Thanks for your understanding!
Please allow a 1-2 cm difference in measurements due to manual measuring.



1 x Diamond Pendant (Rhinestones require adhesive)
1 x Pendant Chain
1 x Diamond Bag


/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1736477762476').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);