How can I implement swipe functionality between tab panes on mobile using custom code in Webflow?

TL;DR
  • Add a unique class to your Webflow tab content wrapper, include the Hammer.js library, and use JavaScript to detect left/right swipes and trigger tab clicks accordingly.  
  • Test the functionality on mobile devices to ensure smooth swipe-based tab navigation.

To enable swipe functionality between tab panes on mobile in Webflow, you need to use custom JavaScript code with a touch event listener or a library like Hammer.js.

1. Set Up Your Tab Component in Webflow

  • Add a Tab component from the Webflow Elements panel.
  • Configure your Tabs Menu and Tabs Panes as usual.
  • Give the container element that holds tab panes (e.g., w-tab-content) a unique class, like mobile-tabs.

2. Include Hammer.js Library (Optional but Recommended)

  • If using Hammer.js (which simplifies touch gestures), add this script in the Page Settings → Before </body> tag:
  • Use this CDN: https://cdn.jsdelivr.net/npm/hammerjs@2.0.8/hammer.min.js

3. Add Custom Code for Swipe Detection

  • In the same Before </body> tag area, insert your custom JavaScript code:

For Hammer.js:

<script>
  const tabContent = document.querySelector('.mobile-tabs');
  const tabs = document.querySelectorAll('.w-tab-link');
  let currentTab = 0;

  const hammer = new Hammer(tabContent);
  hammer.on('swipeleft', () => {
    if (currentTab < tabs.length - 1) {
      currentTab++;
      tabs[currentTab].click();
    }
  });

  hammer.on('swiperight', () => {
    if (currentTab > 0) {
      currentTab--;
      tabs[currentTab].click();
    }
  });

  // Update index on tab click
  tabs.forEach((tab, index) => {
    tab.addEventListener('click', () => {
      currentTab = index;
    });
  });
</script>

If Not Using Hammer.js  

You'll need to write basic touch events (touchstarttouchend) and calculate swipe direction manually, which is more complex and error-prone on multiple devices.

4. Test on Mobile Devices

  • Publish your Webflow site.
  • Open it on a mobile device or emulator and swipe left/right on the tab content area.
  • Tabs should dynamically switch based on your swipes.

5. Customize As Needed

  • Adjust swipe sensitivity by using thresholds or limiting swipes to specific panes.
  • You can also restrict swipes only when certain conditions are met (e.g., not during vertical scroll).

Summary

To create mobile swipe navigation between Webflow tabs, assign a class to your tab content wrapper, load Hammer.js, then use JavaScript to detect swipe gestures and simulate click events on tab links. This approach gives a smooth user interaction and is fully compatible with Webflow’s native Tabs component.

Rate this answer

Other Webflow Questions