










Bra Leo Biscuit
(4.8)

Our signature fabric: soft, stretchy and ultra-comfortable. Perfect for every move on and off the mat.

Stylish look with subtle shine

Light, comfortable compression
发货开始于 {DATE_WILL_BE_SHOWN_HERE}
描述
风格
旨在雕塑和支持您身体的各个正确部位,我们的经典文胸采用我们最耐用且压缩性强的高性能面料制成。柔软的技术面料提供四向拉伸,确保轻松活动,有效排汗并迅速干燥。搭配匹配的打底裤以完成造型。
细节
– 超轻薄透气的性能面料
– 可单独穿着或叠穿
– 面料:80% 聚酰胺,20% 弹性纤维
– 洗护:单独清洗!机洗最高 30 度,搭配相似颜色,不可漂白。晾干或平放晾干,切勿滚筒烘干。不可熨烫。不可干洗。
合身
– 运动背心设计,提供无与伦比的活动自由度
– 适合工作室和街头的轻至中等支撑
– 模特身高 175/177cm,穿着 XL/M 尺码
护理指南
请单独洗涤!机洗最高温度30度,和相似颜色一起洗,禁止漂白。悬挂或平铺晾干,禁止滚筒干燥。禁止熨烫。禁止干洗。
点击这里获取更多信息,并找到我们的小护理指南,教你如何给予衣物应有的关爱。服装生产或任何形式的生产始终会对我们的星球产生影响。因此,我们始终致力于设计持久且永恒的款式,让你可以多年使用。
选择选项











Bra Leo Biscuit
促销价格€49.00
原价€65.00
C
Claudine G. 超级舒适并且对皮肤非常温和。
S
Sarah 我希望每天都能穿hey-honey的衣服😄!
E
Eva R. 合身感极佳😍
J
Julia L. 超完美的合身
L
Lea F. 裤子合身,柔软舒适。颜色与图片一致
M
Maria H. 感觉很好,视觉效果极佳
A
{
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-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
});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-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
const closeButton = this.querySelector('.ai-sticky-cart-close-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
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-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
const buttonElement = this.querySelector('.ai-sticky-cart-button-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
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-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
const buttonElement = this.querySelector('.ai-sticky-cart-button-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
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('zh-CN', {
style: 'currency',
currency: 'EUR'
}).format(cents / 100);
}
async handleAddToCart() {
const button = this.querySelector('.ai-sticky-cart-button-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk');
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-azgi1a1p2zitom3a0waigenblock85c3e1agvbnnk', StickyAddToCartazgi1a1p2zitom3a0waigenblock85c3e1agvbnnk);
})();