🎁Free Shipping on Orders Over $59🎉
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
6 / 9
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
WuShade Front & Rear Universal Car Window Screens
63% OFF
Fnkus

WuShade Front & Rear Universal Car Window Screens

$14.99 $40.00
0 sold
Variants
Qty 1000 in stock

WuShade® Universal Vehicle Window Screens 100% cover the rear side window then provide maximum shading protection for you and your family, as well as lowering the temperature in the vehicle.

  • Eliminate sun glare
  • Reduce heat inside the vehicle
  • Protect your children from sunlight.

Tired of the Sweltering Heat Inside the Car?

The WuShade Covers has been proved as a very solid solution for sunlight protection.

The mesh is breathable, and because it’s on the exterior of the door frame, you can still roll down the windows and enjoy a nice breeze from outside while staying protected from the sun.

Protect Your Passengers From Sunlight

Smaller children ride in the back seat, and are the passengers most likely to be bothered by high temperatures and bright sunlight.

Incredibly Easy to Install

The flexible, stretchy mesh just pulls down over the open car door. Fits almost every vehicle.

  • Your new car seat interior material also can be avoided aging and fade.
  • Avoid glare, high temperatures and protect privacy better in the car.
  • Prevents your children from getting burned or overheated.
  • 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);