Cash on Delivery to Japan,Taiwan HongKong and Singapore ,Free shipping over USD$59
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
2 / 13
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
Aluminum Alloy Automatic Window Spring Latch
You May Also Like Don't Like These?
mysite

Aluminum Alloy Automatic Window Spring Latch

$10.99 $19.70
0 sold
Type
Qty 993 in stock

Aluminum Alloy Automatic Window Spring Latch

 


undefined

FEATURES:

  • Simple to install, works everytime. Used with a gate on a deck to keep from falling down stairs. Combined with a spring loaded hinge door always stays shut , Some more expensive options which do the same thing.

undefined

undefined

  • This latch works exactly like it looks. They come with silver screws, which you could painted black or other color to match the rest of the latch.

undefined

undefined

  • Made of high quality aluminum alloy to ensure quality and service life.

undefined

  • Can be used to enhance the safety of doors, doors and windows, suitable for homes, doors, windows, etc.

undefined

SPECIFICATIONS: 

  • Color: White, Black, Silver
  • Weight: 46G/ 0.1lb
  • Size: As shown
  • Material: Aluminum Alloy

undefined

Notes

  • Due to manual measurements, please allow slight measurement deviations.
  • Due to the different display and lighting effects, the actual color of the item may be slightly different from the color displayed in the picture.
You May Also Like Don't Like These?
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);