🎁Free Shipping on Orders Over $59🎉
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
1 / 8
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
All Purpose Car Cup Holder And Organizer
46% OFF
Fnkus

All Purpose Car Cup Holder And Organizer

$26.99 $49.98
0 sold
Type
Qty 1000 in stock

ROTATING DESIGN INSTANTLY TRANSFORMS

ONE INTO TWO

KEEP YOU DRIVE SAFE

The upper part of our product has the function of stretching and shrinking, which can accommodate the stacking of larger objects and can be rotated 360 degrees, and the overall structure of the lower part is relatively stable!


Elastic open-close cup mouth, The cup holder is suitable for most kinds of cups, thick, thin, and long

Main Features:

  •  2-IN-1 CAR CUP HOLDER WITH 360° ROTATABLE BASE
The base of the upper cup holder can rotate 360 degrees freely, One Car cup holder can be changed into two for use.
    • ADJUSTABLE UPPER CUP MOUTH WIDTH
      The adapter can be adjusted to fit the cup body with a diameter of 3.0"-5.9", And fits most 20 oz water bottles.
    • NON SLIP CUP HOLDER BOTTOM
      If there is a gap between the mounting position and the base of the holder, the cushioning foam pad should be used to fill it, which can not only reduce vibration but also stabilize the holder.
    • SAFE WHILE DRIVING
      Save you countless times from digging between the seat and center console to find your dropped cell phone, credit cards, money, keys...

    Specifications:

    • Materials:ABS
    • Product Weight:288g
    • Product Size (L x W x H):12 × 9 × 22cm / 4.7 × 3.5 × 8.7inches
    • Type: Matt Black, Carbon Black

    Package Include:

    • 1 x All Purpose Car Cup Holder And Organizer

    Note:

    • Due to the different display and lighting effects, the actual color of the item may be slightly different from the color displayed on the picture.
    • Due to manual measurements, please allow slight measurement deviations.
    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);