Free shipping on orders over $34
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
3 / 15
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories
0% OFF

Silver Color Hollow Double Heart Earrings for Women Korean Style Design Ear Buckle 2023 Korea Fashion Jewelry Accessories

$9.39
0 sold
Metal Color
Qty 274 in stock
Back Finding : Push-back
Style : Classic
Gender : Women
Material : Metal
Shape\pattern : Heart
Metals Type : Zinc alloy


Item Type : Earrings
Earring Type : Stud Earrings
Fine or Fashion : Fashion




























































 




const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation);