360 Degree Rotating Rearview Mirror

$16.79
$19.99
-$3.20
Size:  Round
Amount:  1PC
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);

Description

  • This week's special event: Randomly selected 20 lucky customers to get double the order product every day. We will send you an email, please remember to check, thanks for your support💕💕

    • 😊 Returns>>If you are not satisfied with the goods received, please contact us within 15 days after receipt, we will give you the best help!Please don't worry!
    • 🍭 Fast refund Guarantee>> Partial or full refund depend on the situation.
    • 🚢 Shipping>>Worldwide Express Shipping Available.
    •  Handling time>> Priority is given to delivery after payment.
  • With it, you don't need to look back at the road conditions anymore and provide a personalized and practical rear-view solution for the majority of riders.

Main Features

  • 【Material Material】
    PP+ABS+PVC,convex mirror. Can be adjusted to the angle you want, the rotatable convex mirror provides clear visuals of the road conditions behind you.

 

  • 【Function】
    Safety rear view function, you can see the car from the rear side clearly, and the stability will not shake or rebound when riding on an unstable road.
  • 【Easy Install Quick Release】
    The mounting bracket is a retractable silicone rubber belt that can be easily installed even with no tools.

 

  • 【Swivel 360° Adjustable: 】
    This rearview mirror features a 360 ° adjustable degree rotation, The mirror surface can be rotated by 180°, which can be adjusted to any angle according to your needs, the convex swivel mirror offers a clear view of the road conditions behind you.
  • 【Multi Usage Universal】
    As cycling essentials enhance your safety, Ideal for bikes, motorcycle, e-bike.

Buckle diameter:

  • Silicone handleless model: Suitable for handlebars with a diameter of about 15-35MM, and can also be installed on the handlebar.

Specifications

Product Weight
  • 97G
Package Size
(L x W x H)
  • 25 × 20 × 2cm / 9.8 × 7.9 × 0.8inches
Package Contents
  • 360 Degree Rotating Rearview Mirror × 1
Material PP+ABS+PVC

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.
  • 🚚CLICK ADD TO CART TO ENJOY THE COMFY!

    *Limited Items Available In Stock! Not Sold In Stores*

    The Checkout Process is Guaranteed to be 100% Safe and Secure with Credit Card or PayPal.

    100% Satisfaction Guaranteed With Every Order.

    CUSTOMER SERVICE

    • 100% private and confidential.

    • Customer satisfaction means everything to us. If you don't love your product, return the kit within 21 days for a full refund! 

    • Payment success & send e-mail for your confirmation before shipping.

    • Orders can be canceled, returned, or exchanged freely if there are problems with quality, colors, and delayed shipping

    💳 How to Pay:

    🔹 Payments Via PayPal®, Credit, and Debit Card.
    🔹 For Credit and Debit Card payments, simply enter your card details: Card No, Expiration Date, and CVV.