🎁Free Shipping on Orders Over $59🎉
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
1 / 9
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
Solar Powered Water Fountain
54% OFF
Fnkus

Solar Powered Water Fountain

$24.99 $53.99
0 sold
QUANTITY
Qty 997 in stock

🐦Watch the Birds come and Play. Let the birds do the chirping in your garden.

Perfect for Children, Pets & Birds

The solar fountain creates dynamic beauty, the spraying water attracts birds, butterflies, and dragonflies that brings so much vitality to your garden. 

The fountain is perfect for a birdbath, fish tank, small pond, pool, garden, patio, lawn, water circulation for oxygen, etc.

It comes with replaceable nozzles or sprinklers for interchangeable fountain effects. The height of the water spray depends on the nozzles connected. 

Enhance the look of your outdoor garden pool.
A small fountain is required to fulfill your desire, here we are introducing a Portable Water Fountain.

Features:
⛲ Eco Friendly: An extremely competent solar panel does not need a battery or electricity. It`s a good way to save money.

⛲ Sprayer for Different Water Style: There are four different nozzles that change the height of water in different water patterns. The water can rise up to 11.8 – 19.6 in / 30-50 cm.

⛲ Multiple Applications: Use it wherever there is water.

⛲ Floating Fountain Pump: Just make the pump float on the water. Once the solar panel gains sunlight, it will run automatically within a couple of seconds. The brighter the sunlight, the better it works.

🎁It's a perfect gift for your friends&familly!

⚡️Stock sells fast - get yours today!

SHIPPING

  • We would greatly appreciate your patience and understanding as we work to meet demand while ensuring that every piece meets our high-quality standards.

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