Free shipping on orders over $34
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
7 / 8
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie
0% OFF

Trend Vintage Aesthetic Jewelry Black Zircon Crystal Bowkont Stud Earrings for Women Chic Korean Fashion Office Usual Accessorie

$12.10
1 sold
Metal Color
Qty 2347 in stock
Gender : Women
Shape\pattern : Bowknot
Style : Classic
Material : Metal
Metals Type : Zinc alloy


Item Type : Earrings
Earring Type : Drop 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);