🎁Free Shipping on Orders Over $59🎉
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
5 / 10
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
Garden Cartoon Rabbit Hanging Ornament
40% OFF
mysite

Garden Cartoon Rabbit Hanging Ornament

$29.99 $49.99
0 sold
Color
Qty 1000 in stock

FEATURES

  • Reliable Quality: This cute rabbit figurine is made of quality resin, which is durable and firm, no need to worry about breaking, peeling, fading; It will not easy to change its color appearance and appearance, it will look like the same for years to come.
  • Attractive Design: This lovely rabbit status is perfect for a lawn and garden decoration, tree, lawn, or indoor desk, it can also be applied as a vivid decoration for Christmas, Easter, weekend and more.
  • Elegant and Fun: Use this rabbit sitting statue to decorate your back porch, flower bed, next to a tree, or near the patio, it can attract the attention of your guests and show your taste.
  • Ideal Gift: This exquisite, lovely, fun rabbit figurine is ideal for bedrooms, living rooms, offices, outdoor and is a nice gift for your children, friends and relatives. This rabbit figurine is also proper for those who have their own garden and those who like collecting figurines.

     

SPECIFICATIONS

  • Material: resin
  • Color: pink, blue
  • Size:

Pink: about 17.5*8*8cm/6.89*3.15*3.15inch
Blue: about 19*10*7.5cm/7.48*3.94*2.95inch

  • Package: 1 * Garden Cartoon Rabbit Hanging Ornament

NOTE

Please allow slight measurement deviations due to manual measurement.

Due to the different monitor and light effect, the actual color of the item might be slightly different from the color showed in the pictures.

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