Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
11 / 16
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
Adjustable Drawstring Bag
44% OFF

Adjustable Drawstring Bag

$19.99 $35.98
0 sold
Color
Qty 1000 in stock
/** @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);

FEATURES

  • High quality: Nylon waterproof bags with drawstrings, made of strong and sturdy nylon, which will not easily be scratched or torn.

undefined

  • Large capacity: Drawstring sports backpack, which is used to collect sports equipment and daily necessities, such as small books, phones, tissues and private storage like personal items and toiletries.

  • Gym drawstring bag: With roomy compartment and multi-purpose pockets, sports fitness backpacks have enough room to hold and well organize your Pad, books, folding umbrella, water bottle, wallet and other small items.

  • Comfortable shoulder strap: The adjustable shoulder strap makes workout bags more comfortable and durable, and helps reduce your shoulder burden.

  • Widely use: This bags adopt unisex design, suitable for swimming, walking, camping, vacation, travel, yoga, running, shopping and other activities.

undefined

SPECIFICATIONS 

  • Material: Nylon

  • Weight: .300g

  • Color: Purple, Dark Blue, Pink, Orange, Black, Red, Rose Red, Grey

  • Size: 41*15*32cm

  • undefined

PACKAGE

  • 1 * Adjustable Drawstring Bag

NOTE

  • Please allow slight measurement deviation due to manual measurement.

  • Due to the different monitor and light effect, the actual color of the item might be slightly different from the color showed on the pictures.

You may also like Don't Like These?