Vai al contenuto

Carrello

Il tuo carrello è vuoto

Surf Style Leggings Leo Biscuit

(4.9)
Prezzo scontato€91.24
Variante:Leo Biscuit
Misurare:

Model is 177 cm tall and wears size S.

Recensioni dei clienti

Basato su 20 recensioni
80%
(16)
10%
(2)
10%
(2)
0%
(0)
0%
(0)
J
Jules
Jules818

Comoda vestibilità, tessuto piacevole, super design

K
Kimi L.
Innamorata

"Leggings Surf Style Leo Biscuit"

Il mio secondo leggings di 'Hey honey'. Sono totalmente entusiasta della qualità e della vestibilità

S
Silvia
Convinta!

Ottima qualità e molto comoda da indossare.

A
Anonimo

Super comodo & buona vestibilità. Pantaloni molto belli

A
Anonimo
Fan

Vestibilità perfetta, stile e look, meraviglioso!

A
Anne U.
Rilassato

Classe 👍

Foto dell Foto dell { this.findTriggerElements(); this.setupEventListeners(); this.setupScrollObserver(); this.setupVariantChangeListener(); this.adjustPosition(); this.startVisibilityCheck(); if (this.forceVisible) { setTimeout(() => { this.classList.add('force-visible'); }, this.showDelay); } window.addEventListener('resize', this.adjustPosition.bind(this));window.addEventListener('scroll', this.adjustPosition.bind(this)); }, 100); } startVisibilityCheck() { this.checkInterval = setInterval(() => { if (!this.isManuallyHidden) { this.checkTriggerVisibility(); } }, 500); } checkTriggerVisibility() { if (this.triggerElements.length === 0) { this.showSticky(); return; } let anyVisible = false; this.triggerElements.forEach(element => { const rect = element.getBoundingClientRect(); const isVisible = rect.top >= 0 && rect.bottom <= window.innerHeight; if (isVisible) { anyVisible = true; } }); if (this.forceVisible) { this.showSticky(); } else if (anyVisible) { this.hideSticky(); } else { this.showSticky(); } } adjustPosition() { const rect = this.getBoundingClientRect(); const viewportWidth = window.innerWidth; const viewportHeight = window.innerHeight; if (rect.right > viewportWidth - 10) { this.style.left = `${Math.max(10, viewportWidth - rect.width - 10)}px`; } if (rect.bottom > viewportHeight - 10) { this.style.top = `${Math.max(10, viewportHeight - rect.height - 10)}px`; } const currentLeft = parseInt(this.style.left) || 0; const currentTop = parseInt(this.style.top) || 0; if (currentLeft< 10) { this.style.left = '10px'; } if (currentTop < 10) { this.style.top = '10px'; } } findTriggerElements() { const selectors = [ 'button[name="add"]', '[data-product-form] button[type="submit"]', '.product-form button[type="submit"]', '.btn.product-form__cart-submit', 'button[data-action="add-to-cart"]', '.add-to-cart-button', '.product-form__add-button', 'form[action*="/cart/add"] button[type="submit"]', 'input[name="add"]', '.shopify-payment-button', '.product-form__buttons button', '.product__add-to-cart', '[data-add-to-cart]', '.btn--add-to-cart' ]; for (const selector of selectors) { const elements = document.querySelectorAll(selector); if (elements.length > 0) { this.triggerElements = Array.from(elements).filter(el => { return el.offsetParent !== null && !el.closest('.ai-sticky-cart-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); });if (this.triggerElements.length > 0) { console.log('Found trigger elements:', selector, this.triggerElements); break; } } } if (this.triggerElements.length === 0) { console.warn('No add to cart trigger elements found. Sticky cart will be visible based on settings.'); if (!this.forceVisible) { setTimeout(() => this.showSticky(), 2000); } } } setupEventListeners() { const addToCartButton = this.querySelector('.ai-sticky-cart-button-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); const closeButton = this.querySelector('.ai-sticky-cart-close-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); if (addToCartButton) { addToCartButton.addEventListener('click', this.handleAddToCart.bind(this)); } if (closeButton) { closeButton.addEventListener('click', this.hideManually.bind(this)); } } setupScrollObserver() { if (this.triggerElements.length === 0 && !this.forceVisible) return; if (this.observer) { this.observer.disconnect(); } this.observer = new IntersectionObserver( (entries) => { if (this.forceVisible) return; let anyVisible = false; entries.forEach((entry) => { if (entry.isIntersecting && entry.intersectionRatio > 0.1) { anyVisible = true; } }); if (!this.isManuallyHidden) { if (anyVisible) { this.hideSticky(); } else { this.showSticky(); } } }, { threshold: [0, 0.1, 0.5, 1], rootMargin: '-50px 0px -50px 0px' } ); this.triggerElements.forEach(element => { this.observer.observe(element); }); } setupVariantChangeListener() { document.addEventListener('variant:change', (event) => { if (event.detail && event.detail.variant) { this.updateVariant(event.detail.variant); } }); const variantSelectors = document.querySelectorAll('variant-radios, variant-selects, .product-form__input'); variantSelectors.forEach(selector => { selector.addEventListener('change', () => { setTimeout(() => { this.updateFromPage(); }, 100); }); });document.addEventListener('change', (event) => { if (event.target.name && (event.target.name.includes('id') || event.target.name.includes('option'))) { setTimeout(() => { this.updateFromPage(); }, 100); } }); } updateFromPage() { const form = document.querySelector('form[action*="/cart/add"]'); if (form) { const variantId = form.querySelector('[name="id"]')?.value; if (variantId && variantId !== this.variantId) { this.variantId = variantId; this.dataset.variantId = variantId; this.updatePriceFromForm(form); } } } updatePriceFromForm(form) { const priceElement = this.querySelector('.ai-sticky-cart-price-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); const buttonElement = this.querySelector('.ai-sticky-cart-button-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); const formPriceSelectors = [ '.price', '[data-price]', '.product-price', '.price__current', '.product__price', '.money' ]; let formPriceElement = null; for (const selector of formPriceSelectors) { formPriceElement = form.querySelector(selector) || document.querySelector(selector); if (formPriceElement) break; } if (priceElement && formPriceElement) { priceElement.innerHTML = formPriceElement.innerHTML; } const formButton = form.querySelector('button[type="submit"], input[type="submit"]'); if (buttonElement && formButton) { if (formButton.disabled) { buttonElement.disabled = true; buttonElement.textContent = 'Sold Out'; } else { buttonElement.disabled = false; buttonElement.textContent = 'Add to Cart'; } } } updateVariant(variant) { this.variantId = variant.id; this.dataset.variantId = variant.id; const priceElement = this.querySelector('.ai-sticky-cart-price-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); const buttonElement = this.querySelector('.ai-sticky-cart-button-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); if (priceElement) { let priceHTML = ''; if (variant.compare_at_price > variant.price) { priceHTML += `${this.formatMoney(variant.compare_at_price)}`; } priceHTML += this.formatMoney(variant.price); priceElement.innerHTML = priceHTML; } if (buttonElement) { if (variant.available) { buttonElement.disabled = false; buttonElement.textContent = 'Add to Cart'; } else { buttonElement.disabled = true; buttonElement.textContent = 'Sold Out'; } } } formatMoney(cents) { return new Intl.NumberFormat('it', { style: 'currency', currency: 'EUR' }).format(cents / 100); } async handleAddToCart() { const button = this.querySelector('.ai-sticky-cart-button-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk'); const originalText = button.textContent; button.disabled = true; button.textContent = 'Adding...'; try { const formData = new FormData(); formData.append('id', this.variantId); formData.append('quantity', 1); const response = await fetch('/cart/add.js', { method: 'POST', body: formData }); if (response.ok) { const result = await response.json(); document.dispatchEvent(new CustomEvent('cart:item-added', { detail: { variant: result } }));document.dispatchEvent(new CustomEvent('cart:refresh')); const cartDrawer = document.querySelector('cart-drawer'); if (cartDrawer && typeof cartDrawer.open === 'function') { cartDrawer.open(); } button.textContent = 'Added!'; setTimeout(() => { button.textContent = originalText; button.disabled = false; }, 2000); } else { throw new Error('Failed to add to cart'); } } catch (error) { console.error('Error adding to cart:', error); button.textContent = originalText; button.disabled = false; } } showSticky() { if (!this.isManuallyHidden) { this.classList.add('visible'); this.isVisible = true; setTimeout(() => this.adjustPosition(), 50); } } hideSticky() { if (!this.forceVisible) { this.classList.remove('visible'); this.isVisible = false; } } hideManually() { this.classList.remove('visible', 'force-visible'); this.isVisible = false; this.isManuallyHidden = true; } disconnectedCallback() { if (this.observer) { this.observer.disconnect(); } if (this.checkInterval) { clearInterval(this.checkInterval); } window.removeEventListener('resize', this.adjustPosition.bind(this)); window.removeEventListener('scroll', this.adjustPosition.bind(this)); } } customElements.define('sticky-add-to-cart-arzffnjh3u2zim3liwaigenblock85c3e1agvbnnk', StickyAddToCartarzffnjh3u2zim3liwaigenblock85c3e1agvbnnk); })();