Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
1 / 13
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
Men's long sleeve thickened cardigan warm casual jacket
mysite

Men's long sleeve thickened cardigan warm casual jacket

$54.99 $99.99
0 sold
Color
Size
Qty 1000 in stock

  • Buy 2 Get Extra 10% OFF

    Buy 4 Get Extra 15% OFF & FREE SHIPPING

    Refresh Your Look And Stay In Fashion!

    Applicable Scene: Daily

    Material:  100%Cashmere

    Applicable Season: Fall/Autumn / Winter / Spring

    Style: Casual,Classic

    Collar: Stand

    Item Type: Tops

    Tops Type: Jacket

    Hooded: No

    Fabric Type: Broadcloth

    Gender: MEN

    Color: Navy,Blue,Purple,Blue,Khaki,Grey,Brown,Red,Green

    Size: M,L,XL,2XL,3XL

    Style:Classic,Fashion,Casual

    Size Chat

    Tag
    Size
    ReferenceReferenceReferenceLengthChestShoulderSleeve
    USUKEURcm | inchcm | inchcm | inchcm | inch
    S34-3634-3644-4673cm | 28.74''110cm | 43.31''47.5cm | 18.70''64cm | 25.20''
    M38-4038-4048-5074cm | 29.13''115cm | 45.28''49.0cm | 19.29''65cm | 25.59''
    L42425275cm | 29.53''120cm | 47.24''50.5cm | 19.88''66cm | 25.98''
    XL44445476cm | 29.92''125cm | 49.21''52.0cm | 20.47''67cm | 26.38''
    2XL46465677cm | 30.31''130cm | 51.18''53.5cm | 21.06''68cm | 26.77''
    3XL48485878cm | 30.71''135cm | 53.15''55.0cm | 21.65''69cm | 27.17''
    4XL5050 6079cm | 31.10''140cm | 55.12''56.5cm | 22.24'' 70cm | 27.56''
    5XL5252 6280cm | 31.50''145cm | 57.09''58.0cm | 22.83'' 71cm | 27.95''


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