🎁Free Shipping on Orders Over $59🎉
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
7 / 12
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
Newly Upgraded Heating Scarf
50% OFF
Fnkus

Newly Upgraded Heating Scarf

$21.99 $43.99
0 sold
Color
Qty 1000 in stock

🧣🔥

The Newly Upgraded Scarf

It adopts the principle of infrared heating, rapid heating, three-speed temperature adjustment, not afraid of cold winter.

FEATURES

  • ⭐Intelligent Heating: Heats up in 3 seconds with an efficient graphene carbon fiber heating system. Intelligent heating settings (35°C-45°C-55°C/95°F-113°F-131°F) to suit your needs.
  • ⭐Comfortable Material: Breathable and ultra-light material. Comfortable and soft cotton with decent elasticity.

  • ⭐Health Benefits: Graphene heating technology and release of 8-9mm far-infrared rays aid blood circulation and help relax tense neck muscles. The position of the heated pad can be adjusted for targeted therapy.
  • ⭐Human-friendly: The output current is 5V, which is a weak current within the acceptable range of the human body and will not cause harm to the body.
  • ⭐Long Battery Life: 4800mAh power bank, battery life up to 7 hours. Washable (hand wash and machine wash) (Note: Please be sure to remove the mobile power before washing.)

SPECIFICATIONS

  • Material: Cotton
  • Current: 5V
  • Color: red; pink; gray; blue; navy blue; black
  • Weight: 110g / 0.24lb
  • Size: 80*10cm / 31.49*3.93in

PACKAGE INCLUDED

  • 1 × Upgraded Heating Scarf
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);