tag of the document. This will help to improve the load of the images
// during color swatches interaction on PLP
const preloadBackground = (entries, observer) => {
entries.forEach(async (entry) => {
if (entry.isIntersecting) {
const swatch = entry.target;
const images = swatch.dataset.varimg.split(',');
images.forEach((img, index) => {
// preload image
const link = document.createElement('link');
link.href = buildSrc(img);
link.imagesrcset = getSrcset(img);
link.imagesizes = cssImageMediaCondition;
link.rel = 'preload';
link.as = 'image';
document.getElementsByTagName('head')[0].appendChild(link);
});
swatch.removeAttribute('data-varimg');
switchObserver.unobserve(swatch);
}
});
};
const switchObserver = new IntersectionObserver(preloadBackground, {
root: null, // Default is the viewport
rootMargin: '30px',
threshold: 0.05, // Load image when 10% of the div is visible
});
// Sort options
function getPageParam() {
const urlParams = new URLSearchParams(window.location.search);
const pageParam = urlParams.get('page');
return pageParam ? parseInt(pageParam, 10) : 1;
}
domLoadedPage = getPageParam();
setupSortDropdown('.fs_sort_by_wrap_desktop', '.fs_sort_by_options_desktop', '.fs_sort_by_select_desktop');
const sortBySelect = document.getElementById('sortByDesktop');
let sortByValue = getSortBy(); // call the function and store the returned value
sortBySelect.value = sortByValue; // update the desktop dropdown value on page load
// update sort mobile dropdown value on page load
const validSortOptions = ['price_min_to_max', 'price_max_to_min', 'creation_date', 'relevency'];
sortByValue = validSortOptions.includes(sortByValue) ? sortByValue : 'relevency';
const inputField = document.querySelector(`form [data-value="${sortByValue}"]`);
if (inputField) {
inputField.checked = true; // update the value of the option
} else {
console.error(`No radio button found with data-value="${sortByValue}"`);
}
const form = document.getElementById('sortForm');
if (form) {
form.addEventListener('change', (event) => {
if (event.target.name === 'sort') {
const selectedValue = event.target.getAttribute('data-value');
if (selectedValue && validSortOptions.includes(selectedValue)) {
setUrlParam('sortBy', selectedValue, true);
resetPageAndScroll();
updateOtherDropdown(selectedValue);
}
}
});
}
updateOtherDropdown(getSortBy());
if (sortBySelect) {
sortBySelect.addEventListener('change', function () {
if (sortBySelect.value && validSortOptions.includes(sortBySelect.value)) {
setUrlParam('sortBy', sortBySelect.value, true);
}
});
}
// Description 'read more'
function toggleReadMore(button) {
const container = button.parentNode;
const isExpanded = container.getAttribute('aria-expanded') === 'true';
container.setAttribute('aria-expanded', !isExpanded);
if (isExpanded) {
button.querySelector('.button-text').textContent = 'more';
} else {
button.querySelector('.button-text').textContent = 'Show less';
}
}
function visibleReadMore() {
const toggleButtons = document.querySelectorAll('.fs_collection_top_toggle');
toggleButtons.forEach(button => {
const description_children = button.previousElementSibling.children;
let description_scroll_width = 0;
let description_client_width = 0;
for(const child of description_children) {
description_scroll_width += child.scrollWidth;
description_client_width += child.clientWidth;
};
button.style.display = (description_scroll_width > description_client_width) ? 'block' : 'none';
});
}
window.addEventListener('DOMContentLoaded', visibleReadMore);
// category pills GTM
const categories = document.querySelectorAll('.category-pills__pill');
let category;
let categoryHandle;
let categoryId;
const pushCategoryPills = (category, categoryHandle, categoryId, typeCategory) => {
if (category && categoryHandle && categoryId && typeCategory) {
const categoryPills = {
event: `categoryPills`,
category: category,
categoryHandle: categoryHandle,
categoryId: categoryId,
typeCategory: typeCategory
};
window.dataLayer.push(categoryPills);
}
}
categories?.forEach(category => {
category.addEventListener('click', function(e) {
try {
category = e.currentTarget.getAttribute('data-category');
categoryHandle = e.currentTarget.getAttribute('data-collection-handle');
categoryId = e.currentTarget.getAttribute('data-collection-id');
typeCategory = e.currentTarget.getAttribute('data-type-category');
pushCategoryPills(category, categoryHandle, categoryId, typeCategory);
} catch (error) {
console.error('Error in category click event:', error);
}
})
})
Score Big with These Trendy Game Day Outfits!
Get ready to stand out in the crowd with these must-have game day outfits, perfect for any college or professional sporting event! Whether you're tailgating or cheering from the bleachers, your style should be as on point as your team spirit. Game day outfits combine comfort with sporty-chic flair, and we've got just the pieces you need to get that effortless yet trendy look.
Start with a classic crop tee or crop jersey in your team's colors—perfect for showing your support while keeping it cool and casual. Pair it with high-waisted denim shorts or your favorite skinny jeans for a laid-back yet polished vibe. If you're all about adding a bit of feminine flair, try teaming your crop top with a pleated mini skirt or a trendy skort. Skorts are the perfect mix of fashion and function, giving you the freedom to move around while maintaining a cute, sporty aesthetic.
For those chillier game days, layer your look with an oversized varsity jacket or a sleek bomber, both of which pair perfectly with athleisure leggings or joggers. Want to take it up a notch? Accessorize with statement sneakers or combat boots, and throw on a chic crossbody bag to keep your essentials close at hand.
From tailgate to post-game celebrations, our collection of women's game day outfits has everything you need to look and feel amazing. So, grab your gear and get ready to support your team in style!
-
Main Character Mid-Rise Cutout Jeans
These aren’t your average jeans—they’re the kind that demand attention. Featuring bold side cutouts linked with piercing-style hardware, this pair brings major Y2K-meets-street energy. Dress them up with a corset top or keep it cool with a cropped tee—either way, you’re serving main character.
Fit & Features
- Denim fabric
- Mid-rise waist
- Front button closure, belt loop accents
- Side cutouts, linked hardware inserts
- Wide-leg silhouette
- Runs true to size
Style Number/Barcode: 06602-000075
Category Name: Game Day Looks
Price: $54.90
Availability: In Stock
Available Color: BLACK
Available Size: S, M, L
-
Currently Trending Low-Rise Denim Jeans
Pull on a trendy attitude in these low-rise denim jeans featured in a relaxed baggy-fit leg, blending comfort and style!
Fit & Features
- Medium wash fabric
- Low-rise waist
- Baggy relaxed fit leg
- Front button closure, belt loop accents
- Five-pocket styling
- Runs true to size
Style Number/Barcode: 06602-000058
Category Name: Game Day Looks
Price: $49.90
Availability: In Stock
Available Color: MED, DENIM
Available Size: 1, 3, 5, 9, 11, 13