Premium Quick-Dry Athletic Shorts

25,695 Reviews

$19.95 $39.99 SAVE 50%

5-pack
White + Wine Red + Lake Blue + Gray + Black
XS
Size Chart
Ships by Wed, Jul 22
US Fast US Shipping

30 Day Money Back Guarantee | Free Refunds

Mastercard
American Express
Apple Pay
Google Pay
Shop Pay
Discover
Visa

Grab the essentials while you can!

We sell out more often than other brands...

Product Details +
  • Lightweight performance fabric blend designed for breathable all-day comfort
  • Quick-dry athletic material keeps you cool during workouts, running, training, or casual wear
  • Soft smooth texture feels comfortable against the skin without added bulk
  • Flexible stretch waistband allows easy movement and a secure athletic fit
  • Relaxed performance cut designed for training, basketball, gym sessions, and everyday activity
  • Moisture-wicking fabric helps reduce sweat buildup during intense movement
  • Durable construction built to maintain shape and comfort wash after wash
  • Lightweight feel delivers unrestricted mobility for active lifestyles
  • Recommend sizing normally for a standard athletic fit
    Size up for a loose relaxed fit
  • Machine wash cold with like colors, tumble dry low
  • Multi-pack design gives you versatile everyday workout essentials
Fabric & Care +

Fabric

  • 95% Polyester / 5% Spandex Blend
  • Lightweight, quick-dry performance fabric
  • Soft smooth athletic texture
  • Breathable and moisture-wicking feel
  • Flexible stretch for unrestricted movement
  • Comfortable against the skin during workouts or everyday wear

Care

  • Machine wash cold with like colors
  • Tumble dry low
  • Do not bleach
  • Cool iron if needed
  • Hang dry for best long-term performance
Fit +
  • Athletic fit designed for unrestricted movement and everyday comfort
  • Lightweight quick-dry fabric keeps you cool through workouts and daily wear
  • Flexible stretch waistband moves naturally with your body for a secure fit
  • Relaxed performance cut delivers a clean athletic look without feeling restrictive
  • Moisture-wicking fabric helps keep you dry during training, running, or basketball
  • Designed to maintain shape and comfort wear after wear
  • Recommend sizing normally for a standard athletic fit
  • Size up for a looser, more relaxed fit
Model +

The model stands at 6'0" and weighs 185 lbs. He is wearing a size Large in these photos.

Shipping Information +

We offer fast and reliable shipping on all orders. You can expect to receive it within 2-3 days based on your location.

Please contact our customer service team for assistance if you have any questions or concerns about your shipment.

Our Guarantee +

If you're not 100% satisfied within the first 30 days, just send it back to us and we'll give you a full refund.

Crafted for Everyday Wear

Crafted for Everyday Wear

Lightweight All-Day Comfort

Quick-dry performance fabric feels breathable, smooth, and comfortable during every workout.

Designed for Active Movement

Athletic fit and flexible stretch allow unrestricted motion for training, running, or gym sessions.

Performance That Lasts

Durable construction keeps its shape, comfort, and fit through intense workouts and repeated washing.

'#shopify-section-product', '#product-section', '.product-section', // Fallback to any product-related elements '.product-template', '.product-container', '.product-main', '.product', '[data-section-type="product"]', '[data-section-id*="product"]' ]; console.log('Trying fallback selectors: ', productSelectors); // Try each selector until we find a match for (const selector of productSelectors) { targetElement = document.querySelector(selector); if (targetElement) { console.log('Found product element with selector: ', selector); targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); return; // Exit once we've found and scrolled to a product element } } console.log('No product selectors found, trying main content'); // Final fallback: if no product section is found, try scrolling to the main content area targetElement = document.querySelector('main') || document.querySelector('#MainContent'); if (targetElement) { console.log('Scrolling to main content: ', targetElement); targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } else { console.log('No scrollable element found'); } } } catch (err) { console.error('Error in scroll button click handler:', err); } }); }); } catch (err) { console.error('Error initializing scroll to product functionality:', err); } } // Enhanced Accordion functionality with debugging function initAccordions() { console.log('Initializing accordions...'); const accordionContainers = document.querySelectorAll('#image-text-section-template--27789387301229__image_with_text_3Cqi4p .accordion-items-wrapper'); console.log('Found', accordionContainers.length, 'accordion containers'); if (accordionContainers.length === 0) { console.log('No accordion containers found'); return; } accordionContainers.forEach((container, containerIndex) => { console.log(`Processing container ${containerIndex + 1}`); const accordionItems = container.querySelectorAll('.accordion-item'); const accordionMode = container.getAttribute('data-accordion-mode') === 'true'; console.log(`Container ${containerIndex + 1} has ${accordionItems.length} items, accordion mode: ${accordionMode}`); accordionItems.forEach((item, itemIndex) => { const header = item.querySelector('.accordion-header'); const content = item.querySelector('.accordion-content'); if (!header) { console.log(`No header found for item ${itemIndex + 1}`); return; } if (!content) { console.log(`No content found for item ${itemIndex + 1}`); return; } // Skip if already initialized if (header.hasAttribute('data-accordion-initialized')) { console.log(`Item ${itemIndex + 1} already initialized, skipping`); return; } console.log(`Setting up click handler for item ${itemIndex + 1}`); // Create the click handler function const clickHandler = function(e) { console.log(`Accordion item ${itemIndex + 1} clicked!`); e.preventDefault(); e.stopPropagation(); const isActive = item.classList.contains('active'); console.log(`Item ${itemIndex + 1} is currently ${isActive ? 'active' : 'inactive'}`); // If in accordion mode, close all other items if (accordionMode && !isActive) { console.log('Accordion mode: closing other items'); accordionItems.forEach((otherItem, otherIndex) => { if (otherItem !== item && otherItem.classList.contains('active')) { console.log(`Closing item ${otherIndex + 1}`); otherItem.classList.remove('active'); } }); } // Toggle the current item if (isActive) { console.log(`Closing item ${itemIndex + 1}`); item.classList.remove('active'); } else { console.log(`Opening item ${itemIndex + 1}`); item.classList.add('active'); } // Trigger custom event for tracking/analytics try { container.dispatchEvent(new CustomEvent('accordion:toggle', { detail: { item: item, isOpen: !isActive, text: header.querySelector('.accordion-header-text')?.textContent } })); } catch (err) { console.error('Error dispatching accordion event:', err); } }; // Add the click listener header.addEventListener('click', clickHandler); // Store the handler reference for potential cleanup header._accordionClickHandler = clickHandler; // Mark as initialized header.setAttribute('data-accordion-initialized', 'true'); // Add visual feedback on hover header.style.cursor = 'pointer'; // Add keyboard support const keyHandler = function(e) { if (e.key === 'Enter' || e.key === ' ') { console.log(`Keyboard trigger for item ${itemIndex + 1}`); e.preventDefault(); clickHandler(e); } }; header.addEventListener('keydown', keyHandler); header._accordionKeyHandler = keyHandler; // Make header focusable for accessibility if (!header.hasAttribute('tabindex')) { header.setAttribute('tabindex', '0'); } console.log(`Item ${itemIndex + 1} setup complete`); }); }); console.log('Accordion initialization complete'); } // Function to manually test accordion (for debugging) function testAccordion() { console.log('Testing accordion functionality...'); const firstItem = document.querySelector('#image-text-section-template--27789387301229__image_with_text_3Cqi4p .accordion-item'); if (firstItem) { console.log('Found first accordion item, toggling...'); firstItem.classList.toggle('active'); console.log('First item is now:', firstItem.classList.contains('active') ? 'active' : 'inactive'); return true; } else { console.log('No accordion items found for testing'); return false; } } // Initialize immediately if DOM is already ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { console.log('DOM Content Loaded - initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); } else { // DOM is already ready console.log('DOM already ready - initializing components immediately'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); } // Also run on window load to ensure all elements are fully loaded window.addEventListener('load', function() { console.log('Window loaded - re-initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); // Additional initialization for dynamic content document.addEventListener('shopify:section:load', function() { console.log('Shopify section loaded - initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); // Backup initialization using setTimeout setTimeout(function() { console.log('Backup initialization running...'); if (document.querySelector('#image-text-section-template--27789387301229__image_with_text_3Cqi4p .accordion-items-wrapper') && !document.querySelector('#image-text-section-template--27789387301229__image_with_text_3Cqi4p .accordion-header[data-accordion-initialized]')) { console.log('Found uninitialized accordions, running backup init'); initAccordions(); } }, 2000); // Make functions globally available for debugging window.debugAccordion = { init: initAccordions, test: testAccordion, toggle: function(index) { const items = document.querySelectorAll('#image-text-section-template--27789387301229__image_with_text_3Cqi4p .accordion-item'); if (items[index]) { items[index].classList.toggle('active'); console.log(`Manually toggled item ${index + 1}`); } } }; // Final fallback: try to initialize immediately try { console.log('Immediate initialization attempt...'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); } catch (err) { console.error('Immediate initialization failed:', err); }
Fit & Features

Fit & Features

Comfort That Keeps Up With You

Soft quick-dry fabric delivers a lightweight breathable feel that stays comfortable through workouts, errands, and everything in between. Easy to wear, easy to move in, and built for everyday activity.

Designed For Active Movement

The modern athletic fit gives a clean streamlined look while allowing unrestricted movement during training, running, gym sessions, or daily wear.

Performance You Can Rely On

Made with durable high-performance fabric that maintains its comfort, shape, and flexibility through intense workouts, repeated washes, and everyday use.

'#shopify-section-product', '#product-section', '.product-section', // Fallback to any product-related elements '.product-template', '.product-container', '.product-main', '.product', '[data-section-type="product"]', '[data-section-id*="product"]' ]; console.log('Trying fallback selectors: ', productSelectors); // Try each selector until we find a match for (const selector of productSelectors) { targetElement = document.querySelector(selector); if (targetElement) { console.log('Found product element with selector: ', selector); targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); return; // Exit once we've found and scrolled to a product element } } console.log('No product selectors found, trying main content'); // Final fallback: if no product section is found, try scrolling to the main content area targetElement = document.querySelector('main') || document.querySelector('#MainContent'); if (targetElement) { console.log('Scrolling to main content: ', targetElement); targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } else { console.log('No scrollable element found'); } } } catch (err) { console.error('Error in scroll button click handler:', err); } }); }); } catch (err) { console.error('Error initializing scroll to product functionality:', err); } } // Enhanced Accordion functionality with debugging function initAccordions() { console.log('Initializing accordions...'); const accordionContainers = document.querySelectorAll('#image-text-section-template--27789387301229__image_with_text_97HxXJ .accordion-items-wrapper'); console.log('Found', accordionContainers.length, 'accordion containers'); if (accordionContainers.length === 0) { console.log('No accordion containers found'); return; } accordionContainers.forEach((container, containerIndex) => { console.log(`Processing container ${containerIndex + 1}`); const accordionItems = container.querySelectorAll('.accordion-item'); const accordionMode = container.getAttribute('data-accordion-mode') === 'true'; console.log(`Container ${containerIndex + 1} has ${accordionItems.length} items, accordion mode: ${accordionMode}`); accordionItems.forEach((item, itemIndex) => { const header = item.querySelector('.accordion-header'); const content = item.querySelector('.accordion-content'); if (!header) { console.log(`No header found for item ${itemIndex + 1}`); return; } if (!content) { console.log(`No content found for item ${itemIndex + 1}`); return; } // Skip if already initialized if (header.hasAttribute('data-accordion-initialized')) { console.log(`Item ${itemIndex + 1} already initialized, skipping`); return; } console.log(`Setting up click handler for item ${itemIndex + 1}`); // Create the click handler function const clickHandler = function(e) { console.log(`Accordion item ${itemIndex + 1} clicked!`); e.preventDefault(); e.stopPropagation(); const isActive = item.classList.contains('active'); console.log(`Item ${itemIndex + 1} is currently ${isActive ? 'active' : 'inactive'}`); // If in accordion mode, close all other items if (accordionMode && !isActive) { console.log('Accordion mode: closing other items'); accordionItems.forEach((otherItem, otherIndex) => { if (otherItem !== item && otherItem.classList.contains('active')) { console.log(`Closing item ${otherIndex + 1}`); otherItem.classList.remove('active'); } }); } // Toggle the current item if (isActive) { console.log(`Closing item ${itemIndex + 1}`); item.classList.remove('active'); } else { console.log(`Opening item ${itemIndex + 1}`); item.classList.add('active'); } // Trigger custom event for tracking/analytics try { container.dispatchEvent(new CustomEvent('accordion:toggle', { detail: { item: item, isOpen: !isActive, text: header.querySelector('.accordion-header-text')?.textContent } })); } catch (err) { console.error('Error dispatching accordion event:', err); } }; // Add the click listener header.addEventListener('click', clickHandler); // Store the handler reference for potential cleanup header._accordionClickHandler = clickHandler; // Mark as initialized header.setAttribute('data-accordion-initialized', 'true'); // Add visual feedback on hover header.style.cursor = 'pointer'; // Add keyboard support const keyHandler = function(e) { if (e.key === 'Enter' || e.key === ' ') { console.log(`Keyboard trigger for item ${itemIndex + 1}`); e.preventDefault(); clickHandler(e); } }; header.addEventListener('keydown', keyHandler); header._accordionKeyHandler = keyHandler; // Make header focusable for accessibility if (!header.hasAttribute('tabindex')) { header.setAttribute('tabindex', '0'); } console.log(`Item ${itemIndex + 1} setup complete`); }); }); console.log('Accordion initialization complete'); } // Function to manually test accordion (for debugging) function testAccordion() { console.log('Testing accordion functionality...'); const firstItem = document.querySelector('#image-text-section-template--27789387301229__image_with_text_97HxXJ .accordion-item'); if (firstItem) { console.log('Found first accordion item, toggling...'); firstItem.classList.toggle('active'); console.log('First item is now:', firstItem.classList.contains('active') ? 'active' : 'inactive'); return true; } else { console.log('No accordion items found for testing'); return false; } } // Initialize immediately if DOM is already ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { console.log('DOM Content Loaded - initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); } else { // DOM is already ready console.log('DOM already ready - initializing components immediately'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); } // Also run on window load to ensure all elements are fully loaded window.addEventListener('load', function() { console.log('Window loaded - re-initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); // Additional initialization for dynamic content document.addEventListener('shopify:section:load', function() { console.log('Shopify section loaded - initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); // Backup initialization using setTimeout setTimeout(function() { console.log('Backup initialization running...'); if (document.querySelector('#image-text-section-template--27789387301229__image_with_text_97HxXJ .accordion-items-wrapper') && !document.querySelector('#image-text-section-template--27789387301229__image_with_text_97HxXJ .accordion-header[data-accordion-initialized]')) { console.log('Found uninitialized accordions, running backup init'); initAccordions(); } }, 2000); // Make functions globally available for debugging window.debugAccordion = { init: initAccordions, test: testAccordion, toggle: function(index) { const items = document.querySelectorAll('#image-text-section-template--27789387301229__image_with_text_97HxXJ .accordion-item'); if (items[index]) { items[index].classList.toggle('active'); console.log(`Manually toggled item ${index + 1}`); } } }; // Final fallback: try to initialize immediately try { console.log('Immediate initialization attempt...'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); } catch (err) { console.error('Immediate initialization failed:', err); }
Comfort & Design

Comfort & Design

Airy Feel, Zero Distraction 

Featherlight fabric keeps airflow moving so you stay fresh during training and busy days.

Freedom in Every Step 

Relaxed athletic shaping and adaptive stretch let you squat, sprint, and move without restriction.

Ready Beyond the Gym 

Clean modern styling transitions easily from workouts to errands, travel, and everyday wear.

'#shopify-section-product', '#product-section', '.product-section', // Fallback to any product-related elements '.product-template', '.product-container', '.product-main', '.product', '[data-section-type="product"]', '[data-section-id*="product"]' ]; console.log('Trying fallback selectors: ', productSelectors); // Try each selector until we find a match for (const selector of productSelectors) { targetElement = document.querySelector(selector); if (targetElement) { console.log('Found product element with selector: ', selector); targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); return; // Exit once we've found and scrolled to a product element } } console.log('No product selectors found, trying main content'); // Final fallback: if no product section is found, try scrolling to the main content area targetElement = document.querySelector('main') || document.querySelector('#MainContent'); if (targetElement) { console.log('Scrolling to main content: ', targetElement); targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } else { console.log('No scrollable element found'); } } } catch (err) { console.error('Error in scroll button click handler:', err); } }); }); } catch (err) { console.error('Error initializing scroll to product functionality:', err); } } // Enhanced Accordion functionality with debugging function initAccordions() { console.log('Initializing accordions...'); const accordionContainers = document.querySelectorAll('#image-text-section-template--27789387301229__image_with_text_WYEYpp .accordion-items-wrapper'); console.log('Found', accordionContainers.length, 'accordion containers'); if (accordionContainers.length === 0) { console.log('No accordion containers found'); return; } accordionContainers.forEach((container, containerIndex) => { console.log(`Processing container ${containerIndex + 1}`); const accordionItems = container.querySelectorAll('.accordion-item'); const accordionMode = container.getAttribute('data-accordion-mode') === 'true'; console.log(`Container ${containerIndex + 1} has ${accordionItems.length} items, accordion mode: ${accordionMode}`); accordionItems.forEach((item, itemIndex) => { const header = item.querySelector('.accordion-header'); const content = item.querySelector('.accordion-content'); if (!header) { console.log(`No header found for item ${itemIndex + 1}`); return; } if (!content) { console.log(`No content found for item ${itemIndex + 1}`); return; } // Skip if already initialized if (header.hasAttribute('data-accordion-initialized')) { console.log(`Item ${itemIndex + 1} already initialized, skipping`); return; } console.log(`Setting up click handler for item ${itemIndex + 1}`); // Create the click handler function const clickHandler = function(e) { console.log(`Accordion item ${itemIndex + 1} clicked!`); e.preventDefault(); e.stopPropagation(); const isActive = item.classList.contains('active'); console.log(`Item ${itemIndex + 1} is currently ${isActive ? 'active' : 'inactive'}`); // If in accordion mode, close all other items if (accordionMode && !isActive) { console.log('Accordion mode: closing other items'); accordionItems.forEach((otherItem, otherIndex) => { if (otherItem !== item && otherItem.classList.contains('active')) { console.log(`Closing item ${otherIndex + 1}`); otherItem.classList.remove('active'); } }); } // Toggle the current item if (isActive) { console.log(`Closing item ${itemIndex + 1}`); item.classList.remove('active'); } else { console.log(`Opening item ${itemIndex + 1}`); item.classList.add('active'); } // Trigger custom event for tracking/analytics try { container.dispatchEvent(new CustomEvent('accordion:toggle', { detail: { item: item, isOpen: !isActive, text: header.querySelector('.accordion-header-text')?.textContent } })); } catch (err) { console.error('Error dispatching accordion event:', err); } }; // Add the click listener header.addEventListener('click', clickHandler); // Store the handler reference for potential cleanup header._accordionClickHandler = clickHandler; // Mark as initialized header.setAttribute('data-accordion-initialized', 'true'); // Add visual feedback on hover header.style.cursor = 'pointer'; // Add keyboard support const keyHandler = function(e) { if (e.key === 'Enter' || e.key === ' ') { console.log(`Keyboard trigger for item ${itemIndex + 1}`); e.preventDefault(); clickHandler(e); } }; header.addEventListener('keydown', keyHandler); header._accordionKeyHandler = keyHandler; // Make header focusable for accessibility if (!header.hasAttribute('tabindex')) { header.setAttribute('tabindex', '0'); } console.log(`Item ${itemIndex + 1} setup complete`); }); }); console.log('Accordion initialization complete'); } // Function to manually test accordion (for debugging) function testAccordion() { console.log('Testing accordion functionality...'); const firstItem = document.querySelector('#image-text-section-template--27789387301229__image_with_text_WYEYpp .accordion-item'); if (firstItem) { console.log('Found first accordion item, toggling...'); firstItem.classList.toggle('active'); console.log('First item is now:', firstItem.classList.contains('active') ? 'active' : 'inactive'); return true; } else { console.log('No accordion items found for testing'); return false; } } // Initialize immediately if DOM is already ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { console.log('DOM Content Loaded - initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); } else { // DOM is already ready console.log('DOM already ready - initializing components immediately'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); } // Also run on window load to ensure all elements are fully loaded window.addEventListener('load', function() { console.log('Window loaded - re-initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); // Additional initialization for dynamic content document.addEventListener('shopify:section:load', function() { console.log('Shopify section loaded - initializing components'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); }); // Backup initialization using setTimeout setTimeout(function() { console.log('Backup initialization running...'); if (document.querySelector('#image-text-section-template--27789387301229__image_with_text_WYEYpp .accordion-items-wrapper') && !document.querySelector('#image-text-section-template--27789387301229__image_with_text_WYEYpp .accordion-header[data-accordion-initialized]')) { console.log('Found uninitialized accordions, running backup init'); initAccordions(); } }, 2000); // Make functions globally available for debugging window.debugAccordion = { init: initAccordions, test: testAccordion, toggle: function(index) { const items = document.querySelectorAll('#image-text-section-template--27789387301229__image_with_text_WYEYpp .accordion-item'); if (items[index]) { items[index].classList.toggle('active'); console.log(`Manually toggled item ${index + 1}`); } } }; // Final fallback: try to initialize immediately try { console.log('Immediate initialization attempt...'); initImageTextScrollToFirst(); initScrollToProduct(); initAccordions(); } catch (err) { console.error('Immediate initialization failed:', err); }

Why Choose Us?

4 Problems We're Solving for Our Customers

Fit

Built for speed, training, and unrestricted movement.

  • check-verified Created with sketchtool. Flexible athletic cut
  • check-verified Created with sketchtool. Easy range of motion
  • check-verified Created with sketchtool. Secure elastic waistband

Comfort

Performance fabric that stays light through every session.

  • check-verified Created with sketchtool. Cool dry feel
  • check-verified Created with sketchtool. Soft inner texture
  • check-verified Created with sketchtool. Breathable airflow

Value

Made to handle intense workouts and daily wear.

  • check-verified Created with sketchtool. 5-pack included
  • check-verified Created with sketchtool. Shape-retaining fabric
  • check-verified Created with sketchtool. Reliable everyday performance

Versatility

Designed for workouts, recovery days, and casual outfits.

  • check-verified Created with sketchtool. Gym essential
  • check-verified Created with sketchtool. Outdoor ready
  • check-verified Created with sketchtool. Everyday activewear

OUR CUSTOMERS TELL IT BETTER THAN WE DO!

4.9/5 based on 25,695 verified reviews

30-Day Money Back Guarantee

We stand behind our product with a full 30-day money-back guarantee. If you're not completely satisfied for any reason, simply contact us within 30 days of your purchase, and we'll issue a full refund — no questions asked.

ADD TO CART
100% Satisfaction
Fast Shipping
Easy Returns

30-Day Money Back Guarantee

We stand behind our product with a full 30-day money-back guarantee. If you're not completely satisfied for any reason, simply contact us within 30 days of your purchase, and we'll issue a full refund — no questions asked.

ADD TO CART
100% Satisfaction
Fast Shipping
Easy Returns
// Most common first section patterns 'main section:first-of-type', '.main-content section:first-of-type', '.page-content section:first-of-type', // Shopify section patterns '.shopify-section:not([data-section-type="header"]):not([data-section-type="announcement-bar"])', 'section.shopify-section:not([data-section-type="header"])', // General section patterns 'main > *:first-child', '.content section:first-of-type', 'section:not(header):not([role="banner"])', // Fallback to any section 'section:first-of-type', '[data-section-type]:not([data-section-type="header"])', // Last resort - any content element 'main > div:first-child', '.main > *:first-child' ]; let targetElement = null; let usedSelector = ''; for (let selector of selectors) { try { const elements = document.querySelectorAll(selector); if (elements.length > 0) { // Get the first element that's not a header/nav for (let element of elements) { const tagName = element.tagName.toLowerCase(); const sectionType = element.getAttribute('data-section-type'); // Skip header/navigation elements if (tagName === 'header' || tagName === 'nav' || sectionType === 'header' || sectionType === 'announcement-bar' || element.getAttribute('role') === 'banner') { continue; } targetElement = element; usedSelector = selector; break; } if (targetElement) { console.log(`✅ Found first section with selector: ${selector}`); break; } } } catch (e) { // Skip invalid selectors continue; } } if (targetElement) { // Calculate offset for fixed headers const headerHeight = document.querySelector('header')?.offsetHeight || 0; const stickyHeader = document.querySelector('.sticky-header, .header-sticky, [style*="position: fixed"]')?.offsetHeight || 0; const adminBarHeight = document.querySelector('#admin_bar_iframe, .admin-bar')?.offsetHeight || 0; const announcementBar = document.querySelector('.announcement-bar, .promo-bar')?.offsetHeight || 0; const offset = Math.max(headerHeight, stickyHeader) + adminBarHeight + announcementBar + 20; const elementPosition = targetElement.offsetTop; const offsetPosition = elementPosition - offset; window.scrollTo({ top: Math.max(0, offsetPosition), behavior: 'smooth' }); console.log(`✅ Scrolled to first section using selector: ${usedSelector}`); // Optional: Add visual highlight to show successful targeting targetElement.style.transition = 'all 0.3s ease'; targetElement.style.transform = 'scale(1.01)'; setTimeout(() => { targetElement.style.transform = 'scale(1)'; }, 300); } else { console.warn('❌ Could not find any suitable first section to scroll to'); console.log('🔍 Available sections on page:'); // Debug: Show available sections const allSections = document.querySelectorAll('section, .shopify-section, main > *, .main > *'); allSections.forEach((section, index) => { const tagName = section.tagName.toLowerCase(); const id = section.id || 'no-id'; const sectionType = section.getAttribute('data-section-type') || 'no-section-type'; const className = section.className || 'no-class'; console.log(` ${index + 1}. <${tagName}> id="${id}" data-section-type="${sectionType}" class="${className}"`); }); } }); }); });