Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
1/7
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
 Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour
1/7

Magic Hair Set 10 Colors Dye For Party Wholesale Brush Temporary Colour

$28.99
$55.00
Save $26.01
Quantity
/** @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-1539149753700').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);

About this item

🌳【Easy to Clean】The hair chalks are non-allergenic and water-soluble and environmentally friendly and can last up to 3 days; Just wash your hair with water and shampoo as usual to clean the color.

💥【Not Easy Show Color on Black & Brown Hair】 This hair chalk is very easily applied to light hair like blonde hair. But it is a bit difficult for dark or brown hair, you can follow step:1. Apply the color to a handful of hair one time. 2. Seal the chalk and dry the hair with a hairdryer or fan. 3. Finalize your hair with gel or hairspray. And the chalk is normal to be a little sticky but it will be better if you dry it with a hairdryer.

🍒【Great Girls Gifts Toys】This set of kids' temporary hair color is good stuff for girls, kids plus who like designing their own hair, helping them express their personalities and creativity. You also can use it on your lovely dog's hair. Suitable for Children's day, birthday, parties, Wedding, Club, Festivals, Cosplay, Engagement, Halloween, Christmas, New Year, etc, creating a beautiful and unique look for yourself. A cool gift for girls and friends.

🎅【Easy to Use】With the design of a fixed comb, they are easy to apply on your hair from top to bottom without staining your hands. Keep your hands color-free. This hair chalk features a small comb applicator to simply brush on your hair.