🎁Free Shipping on Orders Over $59🎉
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
1 / 16
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
Raccoon Outdoor Ultrasonic Repeller - Solar Powered
40% OFF
Fnkus

Raccoon Outdoor Ultrasonic Repeller - Solar Powered

$29.95 $49.99
1 sold
Type
Qty 1000 in stock

  • SAY GOODBYE TO UNWELCOMED RACCOONS! With the help of Pest Destruct - Ultrasonic Raccoon Pest Repeller you can get rid of raccoons within 48 hours. Coverage Area: 30 feet to 2425 square feet.
  • ENVIRONMENTAL FRIENDLY AND EASY TO USE: Naturally drives raccoons and other animals out without killing them. Made of anti-UV and waterproof material, suitable for all weather conditions. SOLAR energy technology, charge itself under sun, wireless and rechargeable. Don't worry about getting new batteries anymore! Repeller features FLASHING light to scare the animals. 
  • CHEMICAL FREE! Protect your home from unwanted raccoons without the use of dangerous and messy chemicals, pesticides, sprays, or traps that can harm you, and your family. No Dead animals!
  • NEW EFFECTIVE TECHNOLOGY! The Pest Destruct - Ultrasonic Raccoon Repeller uses improved electromagnetic technology to protect you from unwanted animals and pests. It emits a range of powerful, deep-penetrating ultrasonic sounds to scare away a wide variety of pests and animals. Equipped with an infrared motion sensor, the repeller is activated as soon as an animal is detected
  • QUALITY GUARANTEE! Our goal is your 100% satisfaction. This is why we provide a quality guarantee on the Pest Destruct - Ultrasonic Raccoon and Pest Repeller. Contact us if you’re unhappy with your purchase. We’ll be glad to help.
  • Product Size: 5.6" x 5" x 3.75" (Each)
    Spike: 12.6" (Each)
    Package Size: 12.12" x 11.40" x 7.90" 
    Weight: 1.40 Lbs.

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