Is it possible to recreate an image carousel with mouse-based movement in Webflow?

Published on
September 22, 2023

Yes, it is possible to recreate an image carousel with mouse-based movement in Webflow. Below are the steps to achieve this:

  1. Create a new section on your page where you want the image carousel to appear.
  2. Inside the section, add a new div element and give it a class name, such as "carousel-wrapper".
  3. Inside the "carousel-wrapper" div, add a new div element and give it a class name, such as "carousel-slide".
  4. Add all your carousel items (e.g., images) inside the "carousel-slide" div. Each item should be placed inside a separate div or link block, and each div or link block should have a class name (e.g., "carousel-item").
  5. Set the width of the "carousel-slide" div to accommodate all your carousel items. For example, if you have three carousel items with a width of 300px each, set the width of "carousel-slide" to 900px (3 items * 300px).
  6. Style the "carousel-slide" class by giving it a "display: flex" property and set "overflow: hidden" to hide any overflow.
  7. Apply a "flex" or "grid" display property to the "carousel-item" class to arrange the items horizontally.
  8. Add custom code to make the carousel slide horizontally based on mouse movement. Use the Webflow Designer to access the custom code section and paste the following JavaScript code:
var carousel = document.querySelector('.carousel-slide');var isDown = false;var startX;var scrollLeft;carousel.addEventListener('mousedown', function(e) {    isDown = true;    startX = e.pageX - carousel.offsetLeft;    scrollLeft = carousel.scrollLeft;    carousel.classList.add('active');});carousel.addEventListener('mouseleave', function() {    isDown = false;    carousel.classList.remove('active');});carousel.addEventListener('mouseup', function() {    isDown = false;    carousel.classList.remove('active');});carousel.addEventListener('mousemove', function(e) {    if (!isDown) return;    e.preventDefault();    var x = e.pageX - carousel.offsetLeft;    var walk = x - startX;    carousel.scrollLeft = scrollLeft - walk;});
  1. Add the following custom styles to your Webflow project:
.carousel-slide {    scroll-snap-type: x mandatory;    -webkit-overflow-scrolling: touch;}.carousel-item {    flex: 0 0 auto;    width: 100%;}.carousel-wrapper.active {    cursor: grabbing;    cursor: -webkit-grabbing;}.carousel-wrapper.active::before {    cursor: grabbing;    cursor: -webkit-grabbing;}
  1. Preview the page to see your mouse-based image carousel in action.

With these steps, you should be able to create a mouse-based image carousel in Webflow. Remember that you can customize the styles and animations according to your design needs.

Additional questions:

  1. How do I create a mouse-based image carousel in Webflow?
  2. What is the process to make an image carousel with mouse-based movement in Webflow?
  3. Can I implement mouse-based movement in an image carousel in Webflow?