`) $('body').append(ele) ele.css('opacity', 1) $('#tiktok-video-viewer video').on("loadeddata", function() { $('.video-loading').hide() $(this).css('opacity', 1) $(this).click(() => { $(this).attr('controls', 'true') }) }) ele.click(() => removeOffersPromotionVideo()) }) function removeOffersPromotionVideo() { const ele = $(`#tiktok-video-viewer`) if (ele.length) { ele.css('opacity', 0) setTimeout(() => { ele.remove() }, 500) } } document.querySelectorAll('.pc-version .js-drawer-open-nav')[0].addEventListener('click', () => { document.getElementById('NavDrawer').setAttribute('style', `top: ${isActive ? '0' : document.getElementsByClassName('announcement-bar')[0].clientHeight + 'px'} !important`); }) document.querySelectorAll('.mobile-version .js-drawer-open-nav')[0].addEventListener('click', () => { document.getElementById('NavDrawer').setAttribute('style', `top: ${isActive ? '0' : document.getElementsByClassName('announcement-bar')[0].clientHeight + 'px'} !important`); }) let hasAppended = false; const targetPosition = window.document.documentElement.clientHeight; $('.to-top-btn').click(() => { scrollTop() }) handleScrollFixedBottom = () => { const scrollPosition = window.pageYOffset; if (scrollPosition >= targetPosition) { if (!hasAppended) { hasAppended = true; if (isProductPage) { $('.fixed-bottom-product-price').text($('.product__price.on-sale').text() || $('.product__price').text()) quantityChild = quantityBlock.children('.product__quantity'); atcChild = formBlock.children('.product-single__form'); quantityBlock.height(quantityBlock.height()); formBlock.height(formBlock.height()); fixedBottom.append(quantityChild); fixedBottom.append(atcChild); } $('.product-fixed-bottom').addClass('show-bottom') } } else { hasAppended = false; if (isProductPage) { quantityBlock.append(quantityChild); formBlock.append(atcChild); } $('.product-fixed-bottom').removeClass('show-bottom') } } const easeInOutCubic = (current, start, end, duration) => { const change = (end - start) / 2 let time = current / (duration / 2) if (time < 1) { return change * time * time * time + start } time -= 2 return change * (time * time * time + 2) + start } function scrollTop() { const { container = window, duration = 450, easing = easeInOutCubic } = {}; const scrollTop = container['scrollY'] const startTime = Date.now() return new Promise((res) => { const fnc = () => { const timestamp = Date.now() const time = timestamp - startTime const nextScrollTop = easing(Math.min(time, duration), scrollTop, 0, duration) container.scrollTo(window.pageXOffset, nextScrollTop) if (time < duration) { window.requestAnimationFrame(fnc) } else { window.requestAnimationFrame(res) } }; window.requestAnimationFrame(fnc) }) } function raf() { let _raf = window.requestAnimationFrame if (!_raf) { _raf = function(callback, element) { var currTime = new Date().getTime() var timeToCall = Math.max(0, 16.7 - (currTime - lastTime)) var id = window.setTimeout(function() { callback(currTime + timeToCall) }, timeToCall) lastTime = currTime + timeToCall return id } } return _raf } }) // 节流 function throttle(fn, wait) { let previous = 0; return function (...args) { const now = performance.now(); if (now - previous >= wait) { fn.apply(this, args); previous = now; } }; }
NEW
-
SHOP BY COLOR
-
-
-
-
-
-
-
-
Holiday
-
Best Selling
-
WEDDING DECOR
-
Premade Flowers
- Bridal Bouquets
- Bridesmaid Bouquets
- Boutonnieres
- Wrist Corsages
- Sign Decor
- Aisle Chair Decor
- Head Table Decor
- Garlands
- Centerpieces
- Pre-Arranged Packages
-
DIY Flowers
- All Flowers
- All Greenery
- Designer Flower Boxes
- DIY Color Collections
- DIY Centerpieces
- Tools and Kits
-
Linens
- Ribbons
- Table Linens
- Arch Drapes
- Chair Drapes
-
- Rose Petals
- Containers
-
OFFERS
-
Red Wedding Sale
-
DIY Sale
-
Flash Sale | Up to 50% Off
-
Limited-Time Offers
-
-
Shop the Look
-
Ling's Brides
-
Podcasts
-
Wedding Colors
-
Wedding Budget
-
Tips and Guides
-
Decor and Floral Ideas
-
DIY Tutorials
-
Sitewide Offer | UP to $220 offShop Now
10% OFF FIRST ORDERCode: BRIDE2BE
Search
Cart
- NEW
- SHOP BY COLOR
- Holiday
- Best Selling
- WEDDING DECOR
Premade Flowers
Bridal Bouquets
Bridesmaid Bouquets
Boutonnieres
Wrist Corsages
Sign Decor
Aisle Chair Decor
Head Table Decor
Garlands
Centerpieces
Pre-Arranged Packages
DIY Flowers
All Flowers
All Greenery
Designer Flower Boxes
DIY Color Collections
DIY Centerpieces
Tools and Kits
Linens
Ribbons
Table Linens
Arch Drapes
Chair Drapes
Accessories
Rose Petals
Containers
- OFFERS
- Red Wedding Sale
- DIY Sale
- Flash Sale | Up to 50% Off
- Limited-Time Offers
- INSPIRATIONS
- Shop the Look
- Ling's Brides
- Podcasts
- Wedding Colors
- Wedding Budget
- Tips and Guides
- Decor and Floral Ideas
- DIY Tutorials
Cart
Premade boutonnieres, ideal for grooms and groomsmen. Featuring a variety of natural colors, these artificial boutonnieres are an affordable way to bring elegance to a suit. Coordinate with matching bouquets and corsages or make a statement solo. Use for proms, parties, anniversaries, weddings, and more special moments.
74 products
Sale
Sale
Boutonnieres in Noble Navy Blue from $ 13.29Regular price $ 13.99 Sale priceSale
Boutonnieres in Sunset Terracotta from $ 12.59Regular price $ 13.99 Sale priceSale
Sale
Sale
Sale
Sale
Boutonnieres in Romantic Dusty Blue from $ 12.59Regular price $ 13.99 Sale priceSale
Sale
Sale
Pocket Square Boutonniere for Groom in Romantic Marsala $ 17.09Regular price $ 17.99 Sale priceSale
Sale
Sale
Pocket Square Boutonniere for Groom in Sunset Terracotta $ 17.09Regular price $ 17.99 Sale priceSale
Boutonnieres in Ivory from $ 12.59Regular price $ 13.99 Sale priceSale
Boutonnieres in Amber from $ 12.59Regular price $ 13.99 Sale priceSale