Cash on Delivery to Japan,Taiwan HongKong and Singapore ,Free shipping over USD$59
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
15 / 20
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
Coofandy Casual Elastic Waist Loose Pants
You May Also Like Don't Like These?
mysite

Coofandy Casual Elastic Waist Loose Pants

$29.99
0 sold
Color
Size
Qty 1000 in stock

  • Materials: 55% Cotton, 45% Linen
  • Fabric Features: Breathable, soft, non-fading, easy to care
  • Style: Casual, relax
  • Waist: Elastic waistband with adjustable drawstring
  • Details: 2 side pockets, 2 back pockets
  • Occasions: Daily, lounge, beach
  • Care Instructions: Machine wash in cold water

    You May Also Like Don't Like These?
    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);