Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
2/7
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
Multifunctional Spring Positioning Hinge Door Closer
2/7

Multifunctional Spring Positioning Hinge Door Closer

$24.99
$49.98
Save 50%
COLOR
Please select a color
QTY
Please select a qty
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

 Easy access for children and pets!

Main Features

✔ FREE ENTRY AND EXIT: It is convenient for children and pets to enter and exit freely. With automatic buffering, it doesn’t slam the door, it just slams the door softly.

✔ QUICK AND EASY INSTALL: Install your hinges in a flash. These hinges are headache-free to install. All you need is a door and a tool set!

✔ APPLICATIONS: These hinges could be mounted on shed windows, shed hardware, shutters, skylights, vents, flower boxes, etc. for all kinds of outdoor buildings such as sheds, playhouses, animal shelters and more.

✔ DURABLE USE: Strong durable design and classic black finish make these interior door hinges a long lasting, distinguished addition to any home.

Specifications

Materials
  • High-Grade Quality Metal
Product Weight
  • 280G
Product Size
(L x W x H)
  • 10 × 6.5 × 2.6cm
Package Contents
  • Multifunctional Spring Positioning Hinge Door Closer × 1
  • Screw × 9

Note

  • 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.