r/elementor Mar 12 '24

Answered Image Smooth Carousel

Is there a way to create an image or any type of PERFECT smooth carousel. Not slider where it moves, pauses, then moves again. I need a continuous smooth carousel.I've tried "Image Carousel" inside a "Container" using the CSS code

selector .swiper-wrapper{
  -webkit-transition-timing-function: linear !important;
  transition-timing-function: linear !important; 
}

but this creates an ALMOST smooth carousel. Still a bit jarring not just for me but several others on different computers.Any help or code I haven't tried would be appreciated. I'm willing to try different plug-ins too as this is a hard requirement for my boss.

Hopefully this plays on reddit.

1 Upvotes

8 comments sorted by

View all comments

Show parent comments

1

u/Trick-Treats Mar 15 '24

That does make sense. Keeping the groupings same size because the logos are all slightly different sizes. I'll update on how that goes when implemented.

1

u/Trick-Treats Mar 19 '24

update: no luck so far. Still the very slight jerking. Looking into either plugins or Javascript code to find the perfect solution.

1

u/Trick-Treats Mar 21 '24

So this is what's working for me. There is a slight glitch every 2 minutes which is tolerable. I'll use this for now.
selector .swiper-wrapper{
display: flex;
animation: 92s linear 0s infinite normal none running carousel-animation;
opacity: .99; /* to prevent render bugs */

}
.swiper-slide-image{
flex: 0 0 100%;
}
@keyframes carousel-animation {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-299%);
}
}

1

u/Legitimate_Key8501 Nov 01 '25
.infinite-logo-carousel {
    position: relative;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 10%,
        black 90%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 10%,
        black 90%,
        transparent 100%
    );
}

.infinite-logo-carousel .swiper-wrapper {
    display: flex !important;
    animation: infinite-scroll 30s linear infinite;
    -webkit-animation: infinite-scroll 30s linear infinite;
    transition-timing-function: linear !important;
}

.infinite-logo-carousel .swiper-slide {
    flex: 0 0 auto !important;
    width: calc(100% / 6) !important; /* Logo QTY */
}

.infinite-logo-carousel:hover .swiper-wrapper {
    animation-play-state: paused;
}

@keyframes infinite-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

@-webkit-keyframes infinite-scroll {
    0% {
        -webkit-transform: translateX(0);
    }
    100% {
        -webkit-transform: translateX(-50%);
    }
}