Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (2024)

Galaxy S24 | S24+

  • SPECS
  • SUPPORT
  • REVIEWS

Buy now

  • Highlights
  • Compare
  • Accessories
  • My S24
  • SPECS
  • SUPPORT
  • REVIEWS
Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (1) Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (2)
  • *Accessories sold separately.

  • *Image simulated for illustrative purposes. Actual UX/UI may differ.

Get your essentials

  • Cases
  • Galaxy Watch
  • Galaxy Buds

Your turn to customise

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (3)

Gadgets to charge up and track down

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (48)

  • Galaxy SmartTag2

    Tag your things to easily find them when they slip out of sight, like a search party in the palm of your hand.

    Learn more

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (49)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (50)

    Black

  • 25W Power Adapter

    Refuel in a flash with Super Fast Charging. A safe and reliable companion that's built compact for portability.

    Learn more

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (51)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (52)

    Black

  • Super Fast Wireless Charger Duo

    Charge two devices at once with a Watch magnet on one side and a Fast Wireless Charging pad on the other.

    Learn more

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (53)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (54)

    Black

  • Battery Pack

    This 10,000mAh battery delivers up to 25W of Super Fast Charging and has two USB Type-C ports.,,

    Learn more

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (55)

    Beige

Watches for your fit and your fitness

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (56)

  • Galaxy Watch6

    Start your everyday wellness journey with Galaxy Watch6.

    Buy now

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (57)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (58)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (59)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (60)

    Graphite

  • Galaxy Watch6 Classic

    Our iconic rotating bezel has become 15% slimmer now.

    Buy now

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (61)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (62)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (63)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (64)

    Black

Buds to match your love of music

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (65)

  • Galaxy Buds2 Pro

    Pump up playlists with ANC and crystal clear sound. Listen in luxury with this comfortable fit.

    Learn more

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (66)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (67)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (68)

    Bora Purple

  • Galaxy Buds2

    From workouts to gaming and the phone calls in between, intelligent ANC keeps you immersed in the moment.

    Learn more

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (69)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (70)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (71)

    Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (72)

    Olive

Smartphone Accessories

Discover the all-new Galaxy S24 | S24+ and S24 Ultra essentials that redefine effortless style.

*Accessories sold separately.

See all

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (73)

Galaxy S24 Ultra

Learn more

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (74)

Check out smart ways to get your Galaxy S24 | S24+

Buy now Reserve now Pre-order now Where to buy

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (75)

See Galaxy S24 | S24+ in AR Open in AR

Life opens up with Galaxy

Explore more

Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (79)

*All specifications and descriptions provided herein may be different from the actual specifications and descriptions for the product. Samsung reserves the right to make changes to this document and the product described herein, at anytime, without obligation on Samsung to provide notification of such change. All functionality, features, specifications, GUI and other product information provided in this document including, but not limited to, the benefits, design, pricing, components, performance, availability, and capabilities of the product are subject to change without notice or obligation. The contents within the screen are simulated images and are for demonstration purposes only.

  1. All accessories and Galaxy S24 | S24+ and S24 Ultra are sold separately.
  2. Availability of colours, models, and accessory designs may vary by country, region, or carrier.
  3. Only one piece of content is displayed per card.
  4. For Flipsuit Case brand collaboration accessories, only one brand collaboration Flipsuit card is included in the box.
  5. The actual colour, design options, and content displayed on the brand collaboration Flipsuit Case may differ.
  6. Content for Flipsuit Case collaboration cards should be downloaded separately before use; a network connection is required for download.
  7. Grip and Cap accessories are detachable and swappable.
  8. In box items: Clear Gadget case with Grip and Strap
  9. Three features—time, notifications, and music control—are supported without opening the wallet.
  10. Image simulated for illustrative purposes. Actual UI may be different.
  11. Colour availability may vary depending on country or carrier.
  12. Requires Samsung Galaxy smartphones or tablets running Android 11.0 or later with 3GB or more of free RAM; user must opt in to the SmartThings Find app and be logged in to Samsung Account. Bluetooth LE range of up to 120m without obstacles; if Galaxy SmartTag2 is out of range, Galaxy Find Network will be used to track (Galaxy Find Network accuracy based on opt-in Galaxy users who are in range of the SmartTag).
  13. Super Fast Charging (SFC) requires a USB Power Delivery 3.0 compatible device that supports Direct Charging. Devices that do not support USB Power Delivery 3.0 standard or Direct Charging will charge at a slower rate than SFC speed.
  14. Wireless charger requires power connection. Charging speeds may vary by device. Actual charging speed may vary depending on usage, charging conditions and other factors.
  15. 25W Super Fast Charging is only available when connected to a single device.
  16. Cable(s) may be sold separately depending on country or region.
  17. Galaxy Watch6 Small (40mm) offers a 30 percent thinner bezel than Galaxy Watch5 Small (40mm), while Galaxy Watch6 Classic provides a 15 percent thinner rotating bezel than Galaxy Watch4 Classic.

')); } } }; return { setLownetworkClass: setLownetworkClass, setScrollControl: setScrollControl, setResolution: setResolution, onClickSup: onClickSup, centeredFocus: centeredFocus, setArBanner:setArBanner, }})();(function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; const common = window.flagship.accessories.common; let agent = navigator.userAgent.toLowerCase(); let maxOs = agent.indexOf('mac os') > -1; let touchDevice = ('ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch)); let els = {}; const init = function () { els.isGlobal = document.documentElement.classList.contains('global'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', anchorPosition, {once : true}); window.addEventListener('hashchange', anchorPosition); }; const setResize = function () { resize.init([{ resolution: 1920, resolutionName: 'desktop', eventFunction: '' }, { resolution: 1023, resolutionName: 'tablet', eventFunction: '' }, { resolution: 767, resolutionName: 'mobile', eventFunction: '' }, { resolution: 360, resolutionName: 'mobileS', eventFunction: '' }, { resolution: 320, resolutionName: 'mobileXs', eventFunction: '' }], 200); resize.add(common.setResolution); }; const setScrollControl = function () { window.scrollController = ANIUTIL.scrollController(); scrollController.init({ speed: 120, duration: 0.5 }); }; const setImageLoader = function () { window.imageLoader = ANIUTIL.mediaLoader({ lazyClass: '.js-img-src', responsiveClass: '.js-res-img', preset: els.isGlobal ? '' : '?imbypass=true', loadOption: [{ resolution: 1920, attribute: 'data-src-pc' }, { resolution: 1023, attribute: 'data-src-tb' }, { resolution: 767, attribute: 'data-src-mo' }, { resolution: 360, attribute: 'data-src-mo-s' }], visiblePoint: 1 }); window.bgLoader = ANIUTIL.mediaLoader({ type: 'bgImage', lazyClass: '.js-bg-img', loadOption: [{ resolution: 1920, attribute: '', bgOpts: '' }], visiblePoint: 1 }); }; const setDisclaimer = function(){ els.supClicker = document.querySelectorAll('a.click_sup'); for(let i=0;i

-1) { supTag[j].innerText = btmDiclArr.indexOf(dataSupTag) + 1; } else { if (supChildCount == 1) { supTag[j].parentElement.remove(); } else { let supParent = supTag[j].parentElement.childNodes; let supArr = []; for (let supIndex = 0; supIndex < supParent.length; supIndex++) { supArr.push(supParent[supIndex]); } let index = supArr.indexOf(supTag[j]); if (index != 0 && index % 2 == 0) { supParent[index].remove(); supParent[index - 1].remove(); } else { if (index != supArr.length) supParent[index + 1].remove(); supParent[index].remove(); } } } } }; const anchorPosition = function () { if (window.location.hash != '' && !!document.querySelector(window.location.hash)) { let hash = location.hash.split('#')[1], hashSection = document.querySelector('#' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { let sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); } }; const onLoadHandler = function () { common.setLownetworkClass(); common.setArBanner(); init(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setCenteredfocus(); setDisclaimerNumber(); setDisclaimer(); setImageLoader(); }; onLoadHandler();})();(function () { window.flagship.accessories = window.flagship.accessories || {}; flagship.accessories.buyable = (function () { var self = {}; // should change the below to use self to be consisitent var utils = window.flagship.common.utils; var site = null; var makeBuyable = false; var comingSoonCopy = null; var outOfStockCopy = null; var shopIntegrationFlag = null; var isOldHybris = false; var isNewHybris = false; var init = function () { site = $("meta[name=sitecode]").attr("content"); // get the coming soon copy ... var comingSoonDiv = $("#makeAccessoriesBuyable_ComingSoon"); // if coming soon copy exists - makeBuyable makeBuyable = $(comingSoonDiv).length > 0; console.log("buyable.init - " + site + " " + makeBuyable); if (makeBuyable) { shopIntegrationFlag = $("#shopIntegrationFlag").val(); isOldHybris = shopIntegrationFlag === "Hybris" || shopIntegrationFlag === "Hybris-intg"; isNewHybris = shopIntegrationFlag === "Hybris-new"; // get the coming soon copy ... comingSoonCopy = $(comingSoonDiv).text(); outOfStockCopy = $(comingSoonDiv).attr("data-outOfStock"); console.log( "buyable.init - " + comingSoonCopy + " " + outOfStockCopy + " " + isOldHybris + " " + isNewHybris ); // doIt(); $( ".accessories-product__item .accessories-product__cta .common-cta-encased" ).on("click", function (e) { // check if linking or if adding to cart - href vs sku var sku = $(this).data("sku"); var href = $(this).attr("href"); console.log(sku + " " + href); if (sku) { e.preventDefault(); // console.log('add to Basket - ' + sku); doAddToCart(sku); } else { // console.log('go to ' + href); } }); } else { console.log("buyable.init OFF"); } }; var doIt = function () { console.log("buyable.doIt"); }; var doAddToCart = function (sku) { doAddToCartHybris(sku); }; var doAddToCartHybris = function (sku) { console.log("doAddToCartHybris - " + sku); // doAddToCartHybrisOld - not being used ... not checking isOldHybris / isNewHybris doAddToCartHybrisNew(sku, function () { console.log("doAddToCartHybrisNew - done"); }); }; var doAddToCartHybrisNew = function (sku, cb) { var url = "https://shop.samsung.com/" + site + "/servicesv2/addToCart"; var postParam = { products: [{ productCode: sku, quantity: 1 }] }; console.log("url", url); console.log("postParam", postParam); doShowProgress(); $.ajax({ url: url, type: "POST", data: JSON.stringify(postParam), dataType: "json", xhrFields: { withCredentials: true }, contentType: "application/json", timeout: 20000, beforeSend: function () { doShowProgress(); }, success: function (data) { console.log("data", data); if (data.resultCode == "0000") { // don't show popup - go straight to cart ... doShowProgress(); window.location.href = "https://shop.samsung.com" + "/" + site + "/cart"; } else { console.log("fail!"); } }, error: function (o) { doHideProgress(); console.log("error!"); }, complete: function (x) { cb(); }, }); }; var doAddToCartHybrisOld = function (sku, cb) { var params = "products[0].productCode=" + sku + "&products[0].quantity=1"; doShowProgress(); $.ajax({ url: "https://shop.samsung.com" + "/" + site + "/ng/p4v1/addToCart?" + params, // type: "GET", // data: {}, // dataType: "jsonp", // jsonp: "callback", // async: !1, // timeout: 1e4, cache: false, crossDomain: true, xhrFields: { withCredentials: true }, dataType: "json", timeout: 20000, beforeSend: function () { doShowProgress(); }, success: function (s) { doHideProgress(); if ("0000" == s.resultCode) { // don't show popup - go straigh to cart ... doShowProgress(); window.location.href = "https://shop.samsung.com" + "/" + site + "/cart"; } else { console.log("fail!"); } }, error: function (o) { doHideProgress(); console.log("error!"); }, complete: function (x) { cb(); }, }); }; var doShowProgress = function () { // console.log('show progress'); $(".cm-configurator-loader").stop(true, true).show(); }; var doHideProgress = function () { // console.log('hide progress'); $(".cm-configurator-loader").hide(); }; var doSku = function (that) { var sku = that.getAttribute("data-sku"); var url = that.getAttribute("data-url");console.log('TAH - doSku', sku, url) var product = that.closest(".accessories-product__item"); var cta = product.querySelector(".accessories-product__cta"); // hide the button and remove the price - these will be reshown/added based on sku info $(cta).addClass("off"); $(cta).find(".price").remove(); if (sku && makeBuyable) { console.log(sku + " - need to get price/stock etc"); var ctaBtn = product.querySelector(".common-cta-encased"); ctaBtn.setAttribute("data-sku", sku); // to be used for a2b doGetSkuInfo(sku, cta); } else if (url) { console.log(url + " - url so display the CTA"); $(cta).removeClass("off"); } else { console.log("no sku OR url OR turned off"); } }; var doGetSkuInfo = function (sku, cta) { // hide the button and remove the price - these will be reshown/added based on sku info $(cta).addClass("off"); $(cta).find(".price").remove(); doGetSkuInfoHybris(sku, cta, function (data) { doDisplaySkuInfo(sku, cta, data); }); }; var doGetSkuInfoHybris = function (sku, cta, cb) { if (isOldHybris) { doGetSkuInfoHybrisOld(sku, cta, cb); } else if (isNewHybris) { doGetSkuInfoHybrisNew(sku, cta, cb); } else if (site == "ie") { console.log("TODO - exertis - " + sku); } }; var doGetSkuInfoHybrisOld = function (sku, cta, cb) { console.log("hybris old - " + sku); var result = {}; var params = "productCodes=" + sku; $.ajax({ url: "https://shop.samsung.com/" + site + "/servicesv2/getSimpleProductsInfo?" + params, type: "GET", data: {}, dataType: "jsonp", jsonpCallback: "jQuery12345678901234567890_" + sku.toString().toLowerCase().replace("-", "").replace("/", ""), cache: !0, crossDomain: !0, timeout: 1e4, success: function (s) { if ( "0000" == s.resultCode && s.productDatas && s.productDatas.length == 1 ) { var data = s.productDatas[0]; // console.log(data); if ("0000" == data.resultCode) { // console.log('success workings - ' + data.productCode); result.productCode = data.productCode; result.price = data.price; result.priceFormatted = data.priceFormatted; result.promotionPrice = data.promotionPrice; result.promotionPriceFormatted = data.promotionPriceFormatted; result.stockLevelStatus = data.stockLevelStatus; result.stockLevelStatusDisplay = data.stockLevelStatusDisplay; // KD 20220805 force OOS copy if (data.stockLevelStatus == "outOfStock") { result.stockLevelStatusDisplay = outOfStockCopy; } cb(result); } else { console.log("fail sku!"); cb(result); } } else { console.log("fail!"); cb(result); } }, error: function (o) { console.log("error! " + sku, o); cb(result); }, }); }; var doGetSkuInfoHybrisNew = function (sku, cta, cb) { console.log("hybris new - " + sku); var result = {}; var params = "productCodes=" + sku + "&fields=SIMPLE_INFO"; $.ajax({ url: "https://shop.samsung.com/tokocommercewebservices/v2/" + site + "/products?" + params, type: "GET", data: {}, dataType: "json", cache: !0, crossDomain: !0, timeout: 1e4, success: function (s) { if (s && s.length == 1) { var data = s[0]; // console.log(data); var productCode = data.code; var price = null; var priceFormatted = null; var promotionPrice = null; var promotionPriceFormatted = null; if (data.price) { price = data.price.value; priceFormatted = data.price.formattedValue; } if (data.promotionPrice) { promotionPrice = data.promotionPrice.value; promotionPriceFormatted = data.promotionPrice.formattedValue; } var stockLevelStatus = "outOfStock"; var stockLevelStatusDisplay = outOfStockCopy; if ( data.stock && data.stock.stockLevelStatus && (data.stock.stockLevelStatus.toLowerCase() == "instock" || data.stock.stockLevelStatus.toLowerCase() == "backorder" || data.stock.stockLevelStatus.toLowerCase() == "preorder") ) { stockLevelStatus = "inStock"; stockLevelStatusDisplay = ""; // not used if not outOfStock } result.productCode = productCode; result.price = price; result.priceFormatted = priceFormatted; result.promotionPrice = promotionPrice; result.promotionPriceFormatted = promotionPriceFormatted; result.stockLevelStatus = stockLevelStatus; result.stockLevelStatusDisplay = stockLevelStatusDisplay; cb(result); } else { console.log("fail!"); cb(result); } }, error: function (o) { console.log("error! " + sku, o); cb(result); }, }); }; var doDisplaySkuInfo = function (sku, cta, data) { console.log(data); // hide the button and remove the price - these will be reshown/added based on sku info $(cta).addClass("off"); $(cta).find(".price").remove(); if (data.price) { var text = ""; if (data.stockLevelStatus == "outOfStock") { text += "" + data.stockLevelStatusDisplay + ""; } if (data.promotionPrice) { if ( data.priceFormatted != null && data.promotionPriceFormatted != null ) { text += '' + data.priceFormatted + '' + data.promotionPriceFormatted + ""; } } else { if (data.priceFormatted != null) { text += "" + data.priceFormatted + ""; } } if (data.stockLevelStatus != "outOfStock") { // sku exists AND product is REAL AND != outOfStock - show the button $(cta).removeClass("off"); // TRACKING ... TODO } $(cta).append('

' + text + "

"); } else { $(cta).append( '

' + comingSoonCopy + "

" ); } }; return { init: init, doSku: doSku, }; })(); flagship.accessories.colorchip = (function () { const resize = window.flagship.common.resize; const utils = window.flagship.common.utils; let els = {}; let status = {}; let prevDevice = null; let currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('#accessories'); if (!!els.section) { flagship.accessories.buyable.init(); // tah setElements(); setProperty(); setStatus(); setCta(); bindEvents(); } }; const setElements = function () { els.swiper = null; els.productItems = els.section.querySelectorAll('.accessories-product__item'); els.oneProductItemList = []; els.notSlideColorchipList = []; }; const setStatus = function () { status.isClick = false; status.isOptionClick = false; }; const setProperty = function () { //colorchip button property const _colorchipProperty = function (productItems) { let colorchipList = productItems.querySelectorAll('.accessories__colorchip'); if (colorchipList.length < 2) { els.oneProductItemList.push(productItems); } for (let i = 0; i < colorchipList.length; i++) { const accColorchipProperty = { parentWrap: productItems, ctaWrap: productItems.querySelector('.accessories-product__cta'), cta: productItems.querySelector('.accessories-product__cta>a'), currentColor: productItems.querySelector('.accessories-product__current') }; colorchipList[i].accColorchipProperty = accColorchipProperty; } }; //option button property const _optionProperty = function (productItems) { let optionBtnList = productItems.querySelectorAll('.accessories-product__option-btn'); for (let i = 0; i < optionBtnList.length; i++) { let accOptionProperty = { parentWrap: productItems, optionBtnWrap: productItems.querySelectorAll('.accessories-product__option-item')[i], colorchipList: productItems.querySelectorAll('.swiper-pagination-wrap')[i], activeColorchip: productItems.querySelector('.accessories-colors .is-active'), activeSwiperWrap: productItems.querySelectorAll('.swiper-container-wrap')[i], activeSwiperContainer: productItems.querySelectorAll('.swiper-container-wrap .swiper-container')[i], activeColorchipSwiper: productItems.querySelectorAll('.swiper-pagination-wrap .swiper-container')[i], }; optionBtnList[i].accOptionProperty = accOptionProperty; if (!!optionBtnList[i].accOptionProperty.activeSwiperContainer) { let optionFirstImg = optionBtnList[i].accOptionProperty.activeSwiperContainer.querySelector('.swiper-slide img'); if (!!optionFirstImg && !optionFirstImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([optionFirstImg]); } } } }; // swiperContainer property : default const _swiperContainerProperty = function (productItems) { let swiperContainer; if (productItems.querySelector('.accessories-options')) { swiperContainer = productItems.querySelectorAll('.swiper-container-wrap .swiper-container'); } else { swiperContainer = productItems.querySelectorAll('.accessories-product__contents>.swiper-container'); } for (let i = 0; i < swiperContainer.length; i++) { let swiperSlides = swiperContainer[i].querySelectorAll('.swiper-slide'); if (swiperSlides.length >= 2) { let swiperProperty = { nextArrow: swiperContainer[i].parentElement.querySelector('.swiper-button-next'), prevArrow: swiperContainer[i].parentElement.querySelector('.swiper-button-prev'), pagination: productItems.querySelectorAll('.swiper-pagination-wrap')[i], parentWrap: productItems, }; swiperContainer[i].swiperProperty = swiperProperty; } } }; // swiperContainer property : (option) one-slide const _optionOneSlideSwiperContainerProperty = function (productItems) { var options = productItems.querySelector('.accessories-options'); if (options != null) { let paginationWrap = options.querySelectorAll('.swiper-pagination-wrap'); let paginationWrap_1 = paginationWrap[0].querySelectorAll('.accessories__colorchip'); let paginationWrap_2 = paginationWrap[1].querySelectorAll('.accessories__colorchip'); if ((paginationWrap_1.length != paginationWrap_2.length) || (paginationWrap_1.length == 1 && paginationWrap_2.length == 1)) { var swiperContainerWrap = options.querySelectorAll('.swiper-container-wrap'); for (let i = 0; i < swiperContainerWrap.length; i++) { let swiperSlides = swiperContainerWrap[i].querySelectorAll('.swiper-slide'); if (swiperSlides.length <= 1) { swiperContainerWrap[i].querySelector('.swiper-container').classList.add('is-one-slide'); swiperContainerWrap[i].style.pointerEvents = 'none'; if (swiperContainerWrap[i].querySelector('.accessories-product__arrow')) swiperContainerWrap[i].querySelector('.accessories-product__arrow').style.display = 'none'; let swiperProperty = { nextArrow: '', prevArrow: '', pagination: paginationWrap[i], parentWrap: productItems }; swiperContainerWrap[i].querySelector('.swiper-container').swiperProperty = swiperProperty; } } } } }; // colorchipSwiperContainer property const _colorchipSwiperContainerProperty = function (productItems) { let paginationWrap = productItems.querySelectorAll('.swiper-pagination-wrap'); let colorchipContainer = productItems.querySelectorAll('.swiper-pagination-wrap .swiper-container'); for (let i = 0; i < colorchipContainer.length; i++) { let colorchip = colorchipContainer[i].querySelectorAll('.accessories-colors__item'); if (colorchip.length >= 5) { let colorchipSwiperProperty = { nextArrow: paginationWrap[i].querySelector('.swiper-button-next'), prevArrow: paginationWrap[i].querySelector('.swiper-button-prev'), parentWrap: productItems, }; colorchipContainer[i].swiperProperty = colorchipSwiperProperty; } else { els.notSlideColorchipList.push(paginationWrap[i]); } } }; for (let i = 0; i < els.productItems.length; i++) { _colorchipProperty(els.productItems[i]); _optionProperty(els.productItems[i]); _swiperContainerProperty(els.productItems[i]); _optionOneSlideSwiperContainerProperty(els.productItems[i]); _colorchipSwiperContainerProperty(els.productItems[i]); } }; const setCta = function () { for (let i = 0; i < els.productItems.length; i++) { let activeColorchip = els.productItems[i].querySelector('.accessories__colorchip.is-active'), activeColorchipUrl = activeColorchip.getAttribute('data-url'), activeItemCta = els.productItems[i].querySelector('.accessories-product__cta'); if (!!activeItemCta) { if (activeColorchipUrl == '#') { activeItemCta.style.visibility = 'hidden'; activeItemCta.setAttribute('tabindex', -1); activeItemCta.setAttribute('aria-hidden', true); } else { activeItemCta.style.visibility = ''; activeItemCta.removeAttribute('tabindex'); activeItemCta.removeAttribute('aria-hidden'); } flagship.accessories.buyable.doSku(activeColorchip); // tah } } }; const setSwiper = { product: function (target) { let targetProperty = target.swiperProperty; let swiper; if (targetProperty && !target.swiper) { if (target.classList.contains('is-one-slide')) { let oneSlideSwiper = new Swiper(target, { init: false, slidesPerView: 'auto', loop: true, loopedSlides: 1, allowTouchMove: false }); swiper = oneSlideSwiper; } else { let defaultSwiper = new Swiper(target, { init: false, slidesPerView: 'auto', loop: true, loopedSlides: 1, navigation: { nextEl: targetProperty.nextArrow, prevEl: targetProperty.prevArrow }, touchRatio: 0.5, allowTouchMove: (utils.detector.isTouchDevice || (currDevice && currDevice.indexOf('mobile') > -1)) ? true : false }); swiper = defaultSwiper; } swiper.on('init', swiperEvents.product.init); swiper.on('slideChange', swiperEvents.product.slideChange); swiper.on('slideChangeTransitionEnd', swiperEvents.product.slideChangeTransitionEnd); swiper.init(); } }, colorchip: function (target) { let targetProperty = target.swiperProperty; let colorchipSwiper = null; if (targetProperty && !target.swiper) { colorchipSwiper = new Swiper(target, { init: false, slidesPerView: 'auto', loop: false, navigation: { nextEl: targetProperty.nextArrow, prevEl: targetProperty.prevArrow }, touchRatio: 0, allowTouchMove: false, }); colorchipSwiper.on('init', swiperEvents.colorchip.init); colorchipSwiper.on('slideChange', swiperEvents.colorchip.slideChange); colorchipSwiper.init(); } } }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once: true}); window.addEventListener('scroll', scrollHandler); resize.add(resizeEvent); els.section.addEventListener('click', onClickEvents.clickItem); els.section.addEventListener('keydown', onClickEvents.keydownItem); }; const resizeEvent = function (currRes) { if (currRes) currDevice = currRes; let activeSwiper = els.section.querySelectorAll('.swiper-container-initialized'); if (activeSwiper) { for (let i = 0; i < activeSwiper.length; i++) { if (activeSwiper[i].parentElement.classList.contains('swiper-container-wrap')) { if ((currDevice && ((currDevice.indexOf('mobile') > -1) || currDevice == 'tablet'))) { activeSwiper[i].swiper.allowTouchMove = true; } else { activeSwiper[i].swiper.allowTouchMove = false; } } else if (activeSwiper[i].parentElement.classList.contains('swiper-pagination-wrap')) { if (currDevice.indexOf('mobile') < 0) { activeSwiper[i].swiper.destroy(); } } } } }; const onLoadHandler = function () { scrollHandler(); resizeEvent(); productItemElementsEvents.arrowHide(); }; const scrollHandler = function () { for (let i = 0; i < els.productItems.length; i++) { let targetElement = els.productItems[i], scrollTop = window.pageYOffset, scrollBottom = scrollTop + window.innerHeight, targetOffsetTop = scrollTop + targetElement.getBoundingClientRect().top, targetOffsetBottom = scrollTop + targetElement.getBoundingClientRect().bottom, swiperContainer, colorchipContainer; // swiperContainer if (els.productItems[i].querySelector('.accessories-options')) { swiperContainer = els.productItems[i].querySelector('.swiper-container-wrap.is-active .swiper-container'); } else { swiperContainer = els.productItems[i].querySelector('.accessories-product__contents .swiper-container'); } // colorchipContainer if (els.productItems[i].querySelector('.accessories-options')) { colorchipContainer = els.productItems[i].querySelector('.swiper-pagination-wrap.is-active .swiper-container'); } else { colorchipContainer = els.productItems[i].querySelector('.swiper-pagination-wrap .swiper-container'); } if ((scrollTop + 50) < targetOffsetBottom && (scrollBottom - 50) > targetOffsetTop) { setSwiper.product(swiperContainer); if (currDevice.indexOf('mobile') > -1) { setSwiper.colorchip(colorchipContainer); } } } }; const productItemElementsEvents = { optionChange: function (targetOption) { status.isOptionClick = true; let targetProperty = targetOption.accOptionProperty; let targetParent = targetProperty.parentWrap; let targetSwiperContainer = targetProperty.activeSwiperContainer; let oldSwiper = targetParent.querySelector('.swiper-container.swiper-container-initialized'); let optionList = targetParent.querySelectorAll('.accessories-product__option-item'); let targetColorchipSwiper = targetProperty.activeColorchipSwiper; let oldOption = targetParent.querySelector('.accessories-product__option-item.is-active'); let oldColorchipWrap = targetParent.querySelector('.swiper-pagination-wrap.is-active'); let oldSwiperWrap = targetParent.querySelector('.swiper-container-wrap.is-active'); let oldColorchipSwiper = oldColorchipWrap.querySelector('.swiper-container-initialized'); const _currentOptionItem = function () { // optBtn if (!targetProperty.optionBtnWrap.classList.contains('is-active')) { oldOption.classList.remove('is-active'); oldOption.querySelector('button').removeAttribute('title'); targetProperty.optionBtnWrap.classList.add('is-active'); if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { targetProperty.optionBtnWrap.querySelector('button').setAttribute('title', LOCAL_VARI.selected); } else { targetProperty.optionBtnWrap.querySelector('button').setAttribute('title', 'Selected'); } } // colorchipWrap if (!targetProperty.colorchipList.classList.contains('is-active')) { oldColorchipWrap.classList.remove('is-active'); targetProperty.colorchipList.classList.add('is-active'); } // swiperContainer if (!targetProperty.activeSwiperWrap.classList.contains('is-active')) { oldSwiperWrap.classList.remove('is-active'); targetProperty.activeSwiperWrap.classList.add('is-active'); } }; const _setCurrentOptionColorchip = function () { let oldColorchip = oldColorchipWrap.querySelector('.accessories__colorchip.is-active'); let activeColorchip = targetProperty.colorchipList.querySelectorAll('button'); let prevColor = oldColorchip.getAttribute('data-color'); let currentOptionColorchip = null; for (let i = 0; i < activeColorchip.length; i++) { if (prevColor == activeColorchip[i].getAttribute('data-color')) { currentOptionColorchip = activeColorchip[i]; } } if (currentOptionColorchip == null) { currentOptionColorchip = targetProperty.colorchipList.querySelector('button.is-active'); } return currentOptionColorchip; }; const _activeSlideTo = function () { let pagination = targetSwiperContainer.swiperProperty.pagination; let colorchips = pagination.querySelectorAll('.accessories__colorchip'); let colorchipIndex = [].indexOf.call(colorchips, _setCurrentOptionColorchip()); if (targetColorchipSwiper.classList.contains('swiper-container-initialized')) { targetColorchipSwiper.swiper.slideTo((colorchipIndex + 1), false); } targetSwiperContainer.swiper.slideTo((colorchipIndex + 1), 0, false); }; if (optionList.length > 1) { _currentOptionItem(); if (oldSwiper && oldSwiper.swiper != null) { swiperEvents.product.destroy(oldSwiper.swiper); } setSwiper.product(targetSwiperContainer); if (oldColorchipSwiper && oldColorchipSwiper.swiper != null) { swiperEvents.colorchip.destroy(oldColorchipSwiper.swiper); } setSwiper.colorchip(targetColorchipSwiper); var swiperInit = targetSwiperContainer.classList.contains('swiper-container-initialized'); if (swiperInit) { _activeSlideTo(); } else { let targetImg = activeSwiper.querySelectorAll('.accessories-product__image>img'); if (!targetImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(targetImg); } } productItemElementsEvents.colorChange(_setCurrentOptionColorchip()); } }, colorChange: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty; let targetParent = targetProperty.parentWrap; let optionList = targetParent.querySelectorAll('.accessories-product__option-item'); let activeColor = targetColorchip.getAttribute('aria-label'); let oldColorchip; if (optionList.length > 1) { oldColorchip = targetParent.querySelector('.swiper-pagination-wrap.is-active .is-active'); } else { oldColorchip = targetParent.querySelector('.swiper-pagination-wrap .is-active'); } els.oldColorchip = oldColorchip; if (!targetColorchip.classList.contains('is-active')) { oldColorchip.classList.remove('is-active'); oldColorchip.setAttribute('aria-selected', false); targetColorchip.classList.add('is-active'); targetColorchip.setAttribute('aria-selected', true); } targetProperty.currentColor.innerText = activeColor; this.ctaChange(targetColorchip); }, ctaChange: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty; let activeColorCtaUrl = targetColorchip.getAttribute('data-url'); if (!!targetProperty.cta) { if (activeColorCtaUrl == '#') { targetProperty.ctaWrap.style.visibility = 'hidden'; targetProperty.ctaWrap.setAttribute('tabindex', -1); targetProperty.ctaWrap.setAttribute('aria-hidden', true); } else { targetProperty.ctaWrap.style.visibility = ''; targetProperty.ctaWrap.removeAttribute('tabindex'); targetProperty.ctaWrap.removeAttribute('aria-hidden'); } flagship.accessories.buyable.doSku(targetColorchip); // tah } const _setTagging = function () { if (!!targetProperty.cta) { let dataOmni = targetProperty.cta.getAttribute('data-omni').split(':')[4], gala = targetProperty.cta.getAttribute('ga-la').split(':')[4], currColor = targetColorchip.getAttribute('data-color'); if (status.isOptionClick && targetProperty.parentWrap.querySelector('.accessories-product__option')) { let optionDataOmni = targetProperty.cta.getAttribute('data-omni').split(':')[2].split('^').reverse()[0], optionGala = targetProperty.cta.getAttribute('data-omni').split(':')[2].split('^').reverse()[0], currOption = targetProperty.parentWrap.querySelector('.accessories-product__option .is-active').innerText, currOptionText; if (currOption.toLowerCase().indexOf('galaxy') > -1) { currOption = currOption.split(' ')[1].toLowerCase(); if (currOption.indexOf('+') > -1) { currOption = currOption.replace('+', '-plus'); currOptionText = optionDataOmni.split('s24')[0] + currOption; } else { currOptionText = optionDataOmni.split('s24-plus')[0] + currOption; } } else { if (optionDataOmni.indexOf('classic') > -1) { currOptionText = optionDataOmni.split('classic')[0] + `classic-${currOption}`; } else { currOptionText = optionDataOmni.split('watch6')[0] + `watch6-${currOption}`; } } targetProperty.cta.setAttribute('data-omni', targetProperty.cta.getAttribute('data-omni').replace(optionDataOmni, currOptionText)); targetProperty.cta.setAttribute('ga-la', targetProperty.cta.getAttribute('ga-la').replace(optionGala, currOptionText)); status.isOptionClick = false; } targetProperty.cta.setAttribute('href', activeColorCtaUrl); targetProperty.cta.setAttribute('data-omni', targetProperty.cta.getAttribute('data-omni').replace(dataOmni, currColor)); targetProperty.cta.setAttribute('ga-la', targetProperty.cta.getAttribute('ga-la').replace(gala, currColor)); } }; _setTagging(); }, slideTo: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty, targetParent = targetProperty.parentWrap, colorchipList, swiperContainer, colorchipSwiperContainer; if (targetParent.querySelector('.accessories-options')) { swiperContainer = targetParent.querySelector('.swiper-container-wrap.is-active .swiper-container'); colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap.is-active .swiper-container'); } else { swiperContainer = targetParent.querySelector('.accessories-product__contents>.swiper-container'); colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap .swiper-container'); } if (swiperContainer.swiper != null) { if (targetParent.querySelector('.accessories-colors__wrap')) { let colorchipListWrap = targetParent.querySelector('.accessories-colors__wrap .swiper-pagination-wrap.is-active') colorchipList = Array.prototype.slice.call(colorchipListWrap.querySelectorAll('.accessories__colorchip')); } else { colorchipList = Array.prototype.slice.call(targetParent.querySelectorAll('.accessories__colorchip')); } let index = colorchipList.indexOf(targetColorchip); let oldColorchipIndex = colorchipList.indexOf(els.oldColorchip); swiperContainer.swiper.slideTo((index+1), 500, false); status.isClick = false; if (colorchipSwiperContainer.classList.contains('swiper-container-initialized')) { if (oldColorchipIndex < index && index >= 3 && index != (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slideNext(); } else if (index != 0 && oldColorchipIndex > index && index <= (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slidePrev(); } } } }, arrowHide: function () { if (els.oneProductItemList.length > 0) { for (let i = 0; i < els.oneProductItemList.length; i++) { let arrow = els.oneProductItemList[i].querySelector('.accessories-product__arrow'); if (arrow) arrow.style.display = 'none'; } } if (els.notSlideColorchipList.length > 0) { for (let i = 0; i < els.notSlideColorchipList.length; i++) { let arrow = els.notSlideColorchipList[i].querySelector('.accessories-colors__arrow'); if (arrow) arrow.style.display = 'none'; } } }, colorchipSwiperMove: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty, targetParent = targetProperty.parentWrap, colorchipList, colorchipSwiperContainer; if (targetParent.querySelector('.accessories-options')) { colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap.is-active .swiper-container'); } else { colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap .swiper-container'); } let colorchipListWrap = colorchipSwiperContainer; colorchipList = Array.prototype.slice.call(colorchipListWrap.querySelectorAll('.accessories__colorchip')); let index = colorchipList.indexOf(targetColorchip); let oldColorchipIndex = colorchipList.indexOf(els.oldColorchip); if (colorchipSwiperContainer.classList.contains('swiper-container-initialized')) { if (oldColorchipIndex < index && index >= 3 && index != (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slideNext(); } else if (index != 0 && oldColorchipIndex > index && index < (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slidePrev(); } else if (index == 0 || index == (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slideTo(index, false); } } } }; const onClickEvents = { clickItem: function (e) { if (e.target.matches('.accessories-product__option-btn')) { productItemElementsEvents.optionChange(e.target); } else if (e.target.matches('.accessories__colorchip')) { if (!e.target.classList.contains('accessories__colorchip--slide')) { status.isClick = true; productItemElementsEvents.colorChange(e.target); productItemElementsEvents.slideTo(e.target); productItemElementsEvents.colorchipSwiperMove(e.target); } } else if (e.target.matches('.accessories__radio')) { if (!e.target.parentElement.classList.contains('accessories__colorchip--slide')) { status.isClick = true; productItemElementsEvents.colorChange(e.target.parentElement); productItemElementsEvents.slideTo(e.target.parentElement); productItemElementsEvents.colorchipSwiperMove(e.target.parentElement); } } else if (e.target.matches('.accessories__radio-half')) { if (!e.target.parentElement.parentElement.classList.contains('accessories__colorchip--slide')) { status.isClick = true; productItemElementsEvents.colorChange(e.target.parentElement.parentElement); productItemElementsEvents.slideTo(e.target.parentElement.parentElement); productItemElementsEvents.colorchipSwiperMove(e.target.parentElement.parentElement); } } }, keydownItem: function (e) { if (e.keyCode == 13) { if (e.target.matches('.accessories-product__option-btn')) { e && e.preventDefault(); productItemElementsEvents.optionChange(e.target); } else if (e.target.matches('.accessories__colorchip')) { if (!e.target.classList.contains('accessories__colorchip--slide')) { e && e.preventDefault(); status.isClick = true; productItemElementsEvents.colorChange(e.target); productItemElementsEvents.slideTo(e.target); productItemElementsEvents.colorchipSwiperMove(e.target); } } } } }; const swiperEvents = { product: { init: function () { let notification = this.el.querySelector('.swiper-notification'); let self = this; if (!!notification) this.el.removeChild(notification); let cloneSlides = this.el.querySelectorAll('.swiper-slide-duplicate'); for (let i = 0; i < cloneSlides.length; i++) { let cloneId = cloneSlides[i].getAttribute('id'); cloneSlides[i].setAttribute('id', cloneId + '-clone'); } let pagination = this.el.swiperProperty.pagination, colorchips = pagination.querySelectorAll('.accessories__colorchip'), activeColorchip = pagination.querySelector('.accessories__colorchip.is-active'), colorchipIndex = [].indexOf.call(colorchips, activeColorchip); if (colorchipIndex != 0) { this.slideTo((colorchipIndex + 1), 0, false); } const _setImgLoader = function () { let activeSlideImg = self.slides[self.activeIndex].querySelectorAll('img'), prevSlideImg = self.slides[self.activeIndex - 1].querySelectorAll('img'), nextIndex = (self.activeIndex < self.slides.length - 1) ? (self.activeIndex + 1) : 0, nextSlide = self.slides[nextIndex], nextSlideImg = nextSlide.querySelectorAll('img'); if (activeSlideImg[0] && !activeSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(activeSlideImg); } if (prevSlideImg[0] && !prevSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(prevSlideImg); } if (nextSlideImg[0] && !nextSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(nextSlideImg); } }; _setImgLoader(); accessibility.productSlide.call(this); if (this.navigation.prevEl) this.navigation.prevEl.removeAttribute('aria-label'); if (this.navigation.nextEl) this.navigation.nextEl.removeAttribute('aria-label'); }, slideChange: function () { let self = this; if (this && !status.isClick) { let activeIndex = this.realIndex, activeColorchipWrap = this.el.swiperProperty.pagination, activeColorchip = activeColorchipWrap.querySelectorAll('.accessories__colorchip'); productItemElementsEvents.colorChange(activeColorchip[activeIndex]); productItemElementsEvents.colorchipSwiperMove(activeColorchip[activeIndex]); } const _setImgLoader = function () { let activeSlideImg = self.slides[self.activeIndex].querySelectorAll('img'), nextIndex = (self.activeIndex < self.slides.length - 1) ? (self.activeIndex + 1) : 0, nextSlide = self.slides[nextIndex], nextSlideImg = nextSlide.querySelectorAll('img'); if (activeSlideImg[0] && !activeSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(activeSlideImg); } if (nextSlideImg[0] && !nextSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(nextSlideImg); } }; _setImgLoader(); accessibility.productSlide.call(this); }, slideChangeTransitionEnd: function () { status.isClick = false; }, destroy: function (target) { target.destroy(); } }, colorchip: { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); accessibility.colorchipSlide.call(this); if (this.navigation.prevEl) this.navigation.prevEl.removeAttribute('aria-label'); if (this.navigation.nextEl) this.navigation.nextEl.removeAttribute('aria-label'); }, slideChange: function () { accessibility.colorchipSlide.call(this); }, destroy: function (target) { target.destroy(); } } }; const accessibility = { productSlide: function () { for (let i = 0; i < this.slides.length; i++) { if (i != this.activeIndex) { this.slides[i].setAttribute('aria-hidden', true); this.slides[i].setAttribute('tabindex', -1); } else { this.slides[i].setAttribute('aria-hidden', false); this.slides[i].removeAttribute('tabindex'); } } }, colorchipSlide: function () { let isNotActivedColorchips = null; for (let i = 0; i < this.slides.length; i++) { isNotActivedColorchips = (i != this.activeIndex) && (i > (this.activeIndex + 3) || (i < (this.activeIndex))); if (isNotActivedColorchips) { this.slides[i].setAttribute('aria-hidden', true); this.slides[i].setAttribute('tabindex', -1); } else { this.slides[i].setAttribute('aria-hidden', false); this.slides[i].removeAttribute('tabindex'); } } } }; return { init: init } })();})();;(function () { window.flagship.accessories = window.flagship.accessories || {}; flagship.accessories.matchHeight = (function () { const resize = window.flagship.common.resize; let els = {}; let currDevice = resize.checkResolution(); const arrays = { productItemArr: [] }; const init = function () { els.section = document.querySelector('#accessories'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.productList = els.section.querySelectorAll('.accessories-product__list'); els.productLists = Array.prototype.slice.call(els.productList); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once: true}); resize.add(onResizeHandler); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice == null || currDevice.indexOf('mobile') < 0) { matchHeight.setHeight(); } }; const onLoadHandler = function () { if (currDevice == null || currDevice.indexOf('mobile') < 0) { matchHeight.setHeight(); } }; const matchHeight = { setList: function () { let listItems = null; for (let i = 0; i < els.productLists.length; i++) { listItems = Array.prototype.slice.call(els.productLists[i].querySelectorAll('.accessories-product__item')); arrays.productItemArr.push(listItems); } }, setHeight: function () { matchHeight.setList(); let title = null, desc = null, lineCta = null; arrays.productItemArr.forEach(function (productItem) { let itemArr = [], titleArr = [], descArr = [], lineCtaArr = [], maxTitle = 0, maxDesc = 0, maxLineCta = 0; productItem.forEach(function (item) { title = item.querySelector('.accessories-product__title'); desc = item.querySelector('.accessories-product__description'); lineCta = item.querySelector('.accessories-product__cta--underline'); itemArr.push(item); if (title != null) { title.style.height = ''; titleArr.push(title.clientHeight); } if (desc != null) { desc.style.height = ''; descArr.push(desc.clientHeight); } if (lineCta != null) { lineCta.style.height = ''; lineCtaArr.push(lineCta.clientHeight); } }); itemArr = itemSlice(itemArr, 2); titleArr = itemSlice(titleArr, 2); descArr = itemSlice(descArr, 2); lineCtaArr = itemSlice(lineCtaArr, 2); for (let i = 0; i < itemArr.length; i++) { maxTitle = titleArr[i].reduce(function (prev, titleArr) { return Math.max(prev, titleArr); }); maxDesc = descArr[i].reduce(function (prev, descArr) { return Math.max(prev, descArr); }); if (lineCtaArr[i] != null) { maxLineCta = lineCtaArr[i].reduce(function (prev, lineCtaArr) { return Math.max(prev, lineCtaArr); }); } for (let j = 0; j < itemArr[i].length; j++) { if (maxTitle != itemArr[i][j].querySelector('.accessories-product__title').clientHeight) { itemArr[i][j].querySelector('.accessories-product__title').style.height = maxTitle + 'px'; } if (maxDesc != itemArr[i][j].querySelector('.accessories-product__description').clientHeight) { itemArr[i][j].querySelector('.accessories-product__description').style.height = maxDesc + 'px'; } if (itemArr[i][j].querySelector('.accessories-product__cta--underline') != null && maxLineCta != itemArr[i][j].querySelector('.accessories-product__cta--underline').clientHeight) { itemArr[i][j].querySelector('.accessories-product__cta--underline').style.height = maxLineCta + 'px'; } } } }); } }; const itemSlice = function (data, size) { let arr = []; for (let i = 0; i < data.length; i += size) { arr.push(data.slice(i, i + size)); } return arr; }; return { init: init } })();})();;(function () { window.flagship.accessories = window.flagship.accessories || {}; flagship.accessories.overview = (function () { const utils = window.flagship.common.utils; let els = {}; const init = function () { els.section = document.querySelector('.accessories-overview'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.overviewBtn = els.section.querySelectorAll('.accessories-overview__item a'); }; const bindEvents = function () { for (let i = 0; i < els.overviewBtn.length; i++) { els.overviewBtn[i].addEventListener('click', onClickoverviewBtn); } }; const onClickoverviewBtn = function (e) { e.preventDefault(); let navHeight = utils.getNavHeight(); let sectionId = this.getAttribute('href').split('#')[1]; let section = document.querySelector('#' + sectionId); let sectionTop = section.getBoundingClientRect().top; let sectionScroll = window.pageYOffset + sectionTop - navHeight; let sectionTimeout = null; clearTimeout(sectionTimeout); sectionTimeout = setTimeout(function () { section.querySelector('.accessories-visual__headline').setAttribute('tabindex', 0); section.querySelector('.accessories-visual__headline').focus(); window.scrollTo(0, sectionScroll); }, 30); section.querySelector('.accessories-visual__headline').addEventListener('focusout', function () { section.querySelector('.accessories-visual__headline').removeAttribute('tabindex'); }); }; return { init: init } })();})();(function () { window.flagship.common.resize.bindEvent(); const initComponents = function () { flagship.accessories.overview.init(); flagship.accessories.colorchip.init(); flagship.accessories.matchHeight.init(); }; initComponents();})(); });
Accessories & Cases for Galaxy S24 & S24+ | Samsung UK (2024)
Top Articles
Latest Posts
Article information

Author: Msgr. Refugio Daniel

Last Updated:

Views: 6027

Rating: 4.3 / 5 (74 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Msgr. Refugio Daniel

Birthday: 1999-09-15

Address: 8416 Beatty Center, Derekfort, VA 72092-0500

Phone: +6838967160603

Job: Mining Executive

Hobby: Woodworking, Knitting, Fishing, Coffee roasting, Kayaking, Horseback riding, Kite flying

Introduction: My name is Msgr. Refugio Daniel, I am a fine, precious, encouraging, calm, glamorous, vivacious, friendly person who loves writing and wants to share my knowledge and understanding with you.