8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
1 / 17
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
8pcs Hanging Mouse Pendant Christmas Ornament
0% OFF
SOD

8pcs Hanging Mouse Pendant Christmas Ornament

616552

$8.99
12 sold
Qty 3 in stock
5D DIY Diamond Special Shape One-sided Hanging Mouse Pendant Christmas Ornament Xmas Tree Hanging Pendant Party Props Art Mosaic Kit for Bedroom Home Party
Features:
DIY painting, ingenious, uses resin as bright paint, and the unique luster of resin sequins is dazzling and shines in the light, which is the most popular DIY decoration at present.

Specification:
Material: cardboard + resin diamond
Size: 80*78mm/3.14*3.07in
Weight: 45g
Type of diamond: shaped diamond

Making steps of DIY diamond painting:
1. Open the packing box and check the special tools for diamond painting.
2. Check the color of resin diamonds and arrange them in coding order.
3. Uncover the tape chart above, and you will see many symbols corresponding to color coding.
4. Diamond is inlaid according to the resin corresponding to the corresponding color coding fixture.
5. It is suggested that a set of resin diamonds can be completed faster.
6. In order to make perfect diamond products, put the products in one place, without leaving diamonds in each line of symbols.
7. Press the corresponding symbols to drill, and finally, decorate in the festive atmosphere!

Notes:
This is DIY drill, which is not finished. You need to finish it yourself.
Due to the different monitor and light effect, the actual color of the item might be slightly different from the color showed on the pictures. Thank you!
Please allow 1-2cm measuring deviation due to manual measurement.

8 X Cardboard (lanyard included)
1 Set X Diamond painting tools (drill pen, plate)


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