Skip to content
Cart
£0.00
(0)
Electric
Mountain
City and leisure
Mountain
Electric
Full suspension
Hardtail
Trail
Enduro
Gravity
City and leisure
Electric
Manual
Gear
Parts and accessories
Clothing
Explore
Our story
Total Geometry
Bike classifications
Riders
Reviews
News
Demo a bike
Events
Dealers
UK Dealers
International dealers
International distributors
Hire centres
Support
FAQs | Contact
Register your bike
Documents
Delivery information
How-to videos
My Account
Search
Cart
£0.00
(0)
Currency
GBP £
ALL L
AMD դր.
BAM КМ
BGN лв.
CAD $
CHF CHF
DKK kr.
EUR €
GBP £
HUF Ft
ISK kr
MDL L
MKD ден
MYR RM
RON Lei
RSD РСД
SEK kr
UAH ₴
My Account
Search
Electric
Expand menu
Hide menu
Electric
Mountain
City and leisure
Mountain
Expand menu
Hide menu
Mountain
Electric
Full suspension
Hardtail
Trail
Enduro
Gravity
City and leisure
Expand menu
Hide menu
City and leisure
Electric
Manual
Gear
Expand menu
Hide menu
Gear
Parts and accessories
Clothing
Explore
Expand menu
Hide menu
Explore
Our story
Total Geometry
Bike classifications
Riders
Reviews
News
Demo a bike
Expand menu
Hide menu
Demo a bike
Events
Dealers
Expand menu
Hide menu
Dealers
UK Dealers
International dealers
International distributors
Hire centres
Support
Expand menu
Hide menu
Support
FAQs | Contact
Register your bike
Documents
Delivery information
How-to videos
Parts & Accessories
Parts & Accessories
Hide filters
Filter
Sort
Featured
Sort
Featured
Best selling
Alphabetically, A-Z
Alphabetically, Z-A
Price, low to high
Price, high to low
Date, old to new
Date, new to old
Sorry, there are no products in this collection
Search
document.addEventListener("DOMContentLoaded", function() { var swipers = {}; var specificClass = "sliding-category-section"; // the section classname for the section that requires sideloaded swiper parameters document.querySelectorAll('.swiper').forEach(function(el) { var containerClass = el.parentNode.className; //just a dynamic identifier for the swiper instance based on the Shopify section class name var isSpecificInstance = containerClass.includes(specificClass); var autoplayDelay = parseInt(el.dataset.autoplay) || 3000; // Default to 3000ms if not set or invalid var autoplaySetting = el.dataset.autoplayEnabled === 'true' ? { autoplay: { delay: autoplayDelay } } : {}; var firstBreakpointWidth = parseInt(el.dataset.bp1Width); //checking swiperjs first breakpoint value in the HTML element's data attribute var currentViewportWidth = window.innerWidth; var isBelowFirstBreakpoint = currentViewportWidth < firstBreakpointWidth; //checking if the current viewport width is lower than swiper's first breakpoint value var additionalParams = isSpecificInstance && isBelowFirstBreakpoint ? { effect: 'coverflow', grabCursor: true, centeredSlides: true, slidesPerView: "auto", parallax:true, coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: true, } } : {} // var breakpoints = {}; if (el.dataset.bp1Width) { breakpoints[el.dataset.bp1Width] = { slidesPerView: parseInt(el.dataset.bp1Slidesperview) || 1, spaceBetween: parseInt(el.dataset.bp1Spacebetween) || 0 }; } if (el.dataset.bp2Width) { breakpoints[el.dataset.bp2Width] = { slidesPerView: parseInt(el.dataset.bp2Slidesperview) || 1, spaceBetween: parseInt(el.dataset.bp2Spacebetween) || 0 }; } if (el.dataset.bp3Width) { breakpoints[el.dataset.bp3Width] = { slidesPerView: parseInt(el.dataset.bp3Slidesperview) || 1, spaceBetween: parseInt(el.dataset.bp3Spacebetween) || 0 }; } swipers[containerClass] = new Swiper(el, { // Swiper parameters loop: el.dataset.loop === 'true', pagination: { el: el.querySelector('.swiper-pagination'), clickable: true, }, navigation: { nextEl: el.querySelector('.swiper-button-next'), prevEl: el.querySelector('.swiper-button-prev'), }, slidesPerView: el.dataset.slidesPerView ? parseInt(el.dataset.slidesPerView) : 'auto', spaceBetween: 0, ...autoplaySetting, ...additionalParams, ...(breakpoints && { breakpoints: breakpoints }) // ... more settings based on data attributes }); }); });