🔥Black Friday - Save Up To 20% Off🔥
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
1 / 13
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
Virgin Mary - Crystal Rhinestone Diamond Painting
0% OFF

Virgin Mary - Crystal Rhinestone Diamond Painting

1559233.14

$10.99
0 sold
Qty 3000 in stock
Specification:
Origin: Mainland China
Product Size: 11.81 x 15.75 x 0.39 inch
Material: Rhinestone + Canvas
Suitable for: Living Room/Bedroom/Classroom
DIY Diamond Painting Production Steps:
1. Open the box and check that all the diamond painting tools are included.
2. Select a color according to the resin diamond color code and apply it to the plate. Applying multiple colors at once will speed up the process.
3. Find the corresponding color code on the ornament and begin applying until the diamond is complete.
4. Once the diamond is attached, place some books on the diamond attachment for a while to secure it.
5. Once the diamonds are attached, you can use it as a home decoration!

Tips:
1.This is a DIY diamond dot art ornament. It is not finished and requires your own finishing. 
2.Please do not wash.

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 Painting (diamonds need to be pasted)
1set x diamond Painting Tools (not including painting frame)
1set x diamond Bags


/** @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);