USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag
USB charging sport sling Anti-theft Waterproof Crossbody Bag

USB charging sport sling Anti-theft Waterproof Crossbody Bag

Price

$99.99 $56.98
Save $43.01
In stock

colour

Please select a colour

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

This Anti-Theft Sling Bag is super stylish and practical.

 High-quality materials make the look and feel exceptional

 Scratch-proof material prevents cuts and wear marks

 Water-repellent and drop-resistant material keeps your stuff always dry

 The hidden card pocket is handy and secure

The USB connector makes it easy to charge your phone (power bank not included)

 Breathable honeycomb material keeps from sweating and is comfortable to use

Minimalist and simple design. Available in 3 colors, choose your favorite!

undefinedundefined

undefined

Specifications

  • Material: waterproof Ushitsu cloth
  • Color: black with gold/black/grey
  • Product size: 32*18*9cm
  • Product weight: 430g
  • Package includes: 1 x USB charging sport sling  Anti-theft shoulder bag

Notes

  • Due to manual measurements, please allow slight measurement deviations.
  • Due to the different display and lighting effects, the actual color of the item may be slightly different from the color displayed in the picture.