<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="0" height="0" viewBox="0 0 1366 768" xml:space="preserve">
<!-- Gaussian blur filter progression to animate -->
<defs>
<filter id="blur0">
<feGaussianBlur in="SourceGraphic" stdDeviation="0 0" />
</filter>
<filter id="blur1">
<feGaussianBlur in="SourceGraphic" stdDeviation="5 0" />
</filter>
<filter id="blur2">
<feGaussianBlur in="SourceGraphic" stdDeviation="12 0" />
</filter>
<filter id="blur3">
<feGaussianBlur in="SourceGraphic" stdDeviation="20 0" />
</filter>
<filter id="blur4">
<feGaussianBlur in="SourceGraphic" stdDeviation="35 1" />
</filter>
<filter id="blur5">
<feGaussianBlur in="SourceGraphic" stdDeviation="50 1" />
</filter>
</defs>
</svg>
<div class="slider">
<div>
<img src="https://images.unsplash.com/photo-1446770145316-10a05382c470?dpr=1&auto=format&fit=crop&w=900&h=450&q=80&cs=tinysrgb&crop=" alt="">
</div>
<div>
<img src="https://images.unsplash.com/photo-1455717974081-0436a066bb96?dpr=1&auto=format&fit=crop&w=900&h=450&q=80&cs=tinysrgb&crop=" alt="">
</div>
<div>
<img src="https://images.unsplash.com/photo-1477420086945-b99c643e8a3d?dpr=1&auto=format&fit=crop&w=900&h=450&q=80&cs=tinysrgb&crop=" alt="">
</div>
</div>
* {
outline: none;
box-sizing: border-box;
}
body {
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
overflow: hidden;
background-color: #FF3CAC;
background-image: linear-gradient(225deg, #FF3CAC 0%, #784BA0 50%, #2B86C5 100%);
}
.slick-track {
will-change: transform;
}
.slick-list {
overflow: visible;
will-change: transform;
}
.slick-slide {
padding: 0 100px;
width: 100vw;
filter: drop-shadow(0px 10px 40px rgba(0,0,0,0.55));
img {
max-width: 100%;
margin: 0 auto;
}
}
[type="button"] {
position: fixed;
top: 50%;
z-index: 10;
width: 70px;
height: 70px;
overflow: hidden;
border: 0;
text-indent: -9999px;
background-color: black;
background-position: center;
background-repeat: no-repeat;
cursor: pointer;
opacity: 0.9;
transform: translateY(-50%);
transition: all 0.25s ease;
&:hover {
opacity: 1;
}
&.slick-next {
right: 0;
background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjx0aXRsZT5jaGV2cm9uLXJpZ2h0PC90aXRsZT48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNMTUuNzA2IDExLjI5NGwtNi02Yy0wLjM4Ny0wLjM4Ny0xLjAyNS0wLjM4Ny0xLjQxMyAwcy0wLjM4NyAxLjAyNSAwIDEuNDEzbDUuMjk0IDUuMjk0LTUuMjk0IDUuMjk0Yy0wLjM4NyAwLjM4Ny0wLjM4NyAxLjAyNSAwIDEuNDEzIDAuMTk0IDAuMTk0IDAuNDUgMC4yOTQgMC43MDYgMC4yOTRzMC41MTMtMC4xIDAuNzA2LTAuMjk0bDYtNmMwLjM5NC0wLjM4NyAwLjM5NC0xLjAyNSAwLTEuNDEzeiI+PC9wYXRoPjwvc3ZnPg==);
&:hover {
right: -5px;
}
}
&.slick-prev {
left: 0;
background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjx0aXRsZT5jaGV2cm9uLWxlZnQ8L3RpdGxlPjxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMC40MTMgMTJsNS4yOTQtNS4yOTRjMC4zODctMC4zODcgMC4zODctMS4wMjUgMC0xLjQxM3MtMS4wMjUtMC4zODctMS40MTMgMGwtNiA2Yy0wLjM4NyAwLjM4Ny0wLjM4NyAxLjAyNSAwIDEuNDEzbDYgNmMwLjE5NCAwLjE5NCAwLjQ1IDAuMjk0IDAuNzA2IDAuMjk0czAuNTEzLTAuMSAwLjcwNi0wLjI5NGMwLjM4Ny0wLjM4NyAwLjM4Ny0xLjAyNSAwLTEuNDEzbC01LjI5NC01LjI5NHoiPjwvcGF0aD48L3N2Zz4=);
&:hover {
left: -5px;
}
}
}
@keyframes motion-blur {
0% {
filter: url(#blur0);
transform: scale(1, 1);
}
15% {
filter: url(#blur1);
transform: scale(1, 0.98);
}
30% {
filter: url(#blur2);
transform: scale(1, 0.93);
}
45% {
filter: url(#blur3);
transform: scale(1.1, 0.9);
}
60% {
filter: url(#blur4);
transform: scale(1.2, 0.88);
}
75%,
100% {
filter: url(#blur5);
transform: scale(1.35, 0.85);
}
}
.do-transition {
animation:
motion-blur 0.1s linear forwards,
motion-blur 0.4s linear reverse forwards 0.1s;
}
View Compiled
// Slick slider init
$('.slider').slick({
arrows: true,
dots: false,
infinite: true,
speed: 500,
slidesToShow: 1,
centerMode: true,
variableWidth: true,
draggable: false
});
$('.slider')
.on('beforeChange', function(event, slick, currentSlide, nextSlide){
$('.slick-list').addClass('do-transition')
})
.on('afterChange', function(){
$('.slick-list').removeClass('do-transition')
});