FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights
FLEXIGLOW Curtain Lights

FLEXIGLOW Curtain Lights

Price

$199.00 $99.99
Save $99.01
In stock

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

Transform Your Environment with FLEXIGLOW Smart Curtain Lights

Step into a world of vibrant colors and dynamic light with FLEXIGLOW Smart Curtain Lights. Boasting an impressive array of 400 LEDs, these lights are not just decorative elements but a gateway to creating your very own mesmerizing light show.

Unleash Your Creativity with FLEXIGLOW

With our versatile DIY Mode, your imagination is the limit. Design, customize, and bring your unique lighting visions to life, ensuring every occasion is lit exactly the way you envision.

Create Your Holiday Magic

When it comes to Christmas, New Year's, and all your festive celebrations, FLEXIGLOW Smart Curtain Lights transform your space into a holiday wonderland. These lights not only add to the joy of the season but become a centerpiece of your holiday decor.

Transform Your Room with Mood-Enhancing Lighting

Elevate the ambiance of any room with our curtain lights. They're not just for illumination; they create an atmosphere. Whether it's a calming blue for relaxation, a vibrant yellow for energy, or romantic reds and pinks for intimate evenings, these lights change the entire mood of your space.

Specifications

  • Color:As shown
  • Product size:6.6FT*6.6FT
  • Product weight:900g.
  • Method of use:Mobile APP+Remote Control