JavaScript seems to be disabled in your browser. For the best experience on our site, be sure to turn on Javascript in your browser.
Free delivery from 35€!
3 perfumes purchased= the 4th is FREE (see conditions)*
AQUA (WATER), SODIUM LAURETH SULFATE, COCAMIDOPROPYL BETAINE, PARFUM (FRAGRANCE), SODIUM CHLORIDE, INULIN, SODIUM BENZOATE, CITRIC ACID, LINALOOL, LIMONENE, COUMARIN, CITRONELLOL, GERANIOL, CI 15985 (YELLOW 6), CI 19140 (YELLOW 5), CI 28440, CI 42090 (BLUE 1).
Accessibility, pleasure, quality, French manufacturing, discover our daily commitments for a joyful and committed beauty that suits you! { setTimeout(() => { this.initMore(); this.$refs.readmore.classList.remove('more-calc'); this.updateLinksAccessibility(); }, 0); }); }, initMore() { this.getValues(); if(lineClampNb * this.lineHeight < this.maxHeight) { this.$refs.readmore.style.height = lineClampNb * this.lineHeight + 'px'; this.isMoreContentActive = true; } this.$refs.readmore.classList.remove('more-calc'); this.updateLinksAccessibility(); }, getValues() { let computedStyles = window.getComputedStyle(this.$refs.readmore); this.lineHeight = Number(computedStyles.getPropertyValue('line-height').replace('px', '')); this.maxHeight = this.$refs.readmore.clientHeight; }, showMore() { const wasClosed = !this.more; let firstHiddenLink = null; if (wasClosed) { const links = this.$refs.readmore.querySelectorAll('a'); const containerRect = this.$refs.readmore.getBoundingClientRect(); const visibleHeight = lineClampNb * this.lineHeight; for (let link of links) { const linkRect = link.getBoundingClientRect(); const linkTopRelative = linkRect.top - containerRect.top; const linkBottomRelative = linkRect.bottom - containerRect.top; const isPartiallyVisible = linkTopRelative < visibleHeight && linkBottomRelative > 0; if (!isPartiallyVisible) { firstHiddenLink = link; break; } } } this.more = !this.more; if(this.more) { this.$refs.readmore.style.height = this.maxHeight + 'px'; } else { this.$refs.readmore.style.height = lineClampNb * this.lineHeight + 'px'; } this.updateLinksAccessibility(); if (wasClosed && firstHiddenLink) { setTimeout(() => { firstHiddenLink.focus(); }, 300); } }, updateLinksAccessibility() { if (!this.$refs.readmore) return; const links = this.$refs.readmore.querySelectorAll('a'); const containerRect = this.$refs.readmore.getBoundingClientRect(); const visibleHeight = this.more ? this.maxHeight : (lineClampNb * this.lineHeight); links.forEach(link => { const linkRect = link.getBoundingClientRect(); const linkTopRelative = linkRect.top - containerRect.top; const linkBottomRelative = linkRect.bottom - containerRect.top; if (this.more) { link.removeAttribute('tabindex'); } else { const isPartiallyVisible = linkTopRelative < visibleHeight && linkBottomRelative > 0; if (isPartiallyVisible) { link.removeAttribute('tabindex'); } else { link.setAttribute('tabindex', '-1'); } } }); }, } }