Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
1/5
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
Men's Casual Sports High Elastic Breathable Vest
1/5

Men's Casual Sports High Elastic Breathable Vest

$21.15
$0.00
Save 0%
Fast delivery
Worldwide shipping
Colorwhite
Please select a color
Size
Please select a size
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

⬇️ Detailed size introduction is included in each product description.

Please read the "Size Guide" instructions below carefully before purchasing and choose your own size based on different parameters.

PS: Under normal circumstances, if you want to wear a slim fit, just choose your usual size. If you want to wear an oversized fit, choose one size larger.

ProductNo SP2401297U90
Fit Fit
Sleeve Length Sleeveless
Placket Type Pullovers
Design Elements No
Occasion Daily,Outdoor,Sport,Leisure,Tactical
Collar/Neckline High Neck
Style Casual,Basic,Fitness,on foot,Running,Tactical
Material Cotton Linen Blend,Polyester,Lycra/Lycra/Spandex
Develop themes other
Season All Season
Yards (cm) S M L XL 2XL 3XL 4XL 5XL
UK8/1012/14161820222426
US4/68/10121416182022
EU36/3840/42444648505254
bust9499104109114119124129
waistline80859095100105110115
hips97102107112117122127132
Shoulder width43.54546.54849.55152.554
Weight-kg55-6060-6565-7070-7575-8080-8585-9090-95