Cash on Delivery to Japan,Taiwan HongKong and Singapore ,Free shipping over USD$59
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
16 / 16
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
Casual Straight Linen Drawstring Pants (US Only)
You May Also Like Don't Like These?
mysite

Casual Straight Linen Drawstring Pants (US Only)

$33.99
0 sold
Color
Size
Qty 1000 in stock

US only. Free delivery in 3-7 business days.
Material:?70% Viscose, 30% Linen
Fabric:?Breathable, soft, lightweight
Style:?Regular fit, business casual
Occasions:?Perfect for office, vacation, weekend, travel, home, work, beach, etc.
Care Instructions:?Machine wash

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);