Free shipping over $40
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
1 / 8
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
Adjustable Screen Top Shelf Stuff Organizer
50% OFF
Save $19.99
oathshopy

Adjustable Screen Top Shelf Stuff Organizer

$19.99 $39.98
0 sold
Quantity
Color
Size
Qty


Main Features

  • DURABLE MATERIAL: The screen top shelf is made of ABS resin. Sturdy & Durable. Suitable for most flat-screen sizes.
  • UNIQUE & PRACTICAL: Our screen top storage bracket has an adjustable elastic design to satisfy your various needs, and the non-slip surface will keep your accessories from sliding.
  • EASY TO INSTALL: Do not require any other installation tools. You can directly adjust the rotation button to fix it or rotate the feet in the opposite direction until the screws are stable.
  • WIDELY APPLICATION: With your top shelf, you can place it on a computer or TV in family and office, which can help you put some remote control, routers, calculator, and some small home decorations.

Using Methods

  • This screen top shelf can help you to clean your table, tea table, or computer table, bring you and your family a comfortable living environment.

Specifications

Product Weight
  • 100g
Product Size
  • 11 × 16 × 2cm 
Material
  • ABS
Package Contents Adjustable Screen Top Shelf × 1

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 on the picture.
/** @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-1711005325228').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);