"Illustrative Stacked Cards"
Bootstrap 4.1.1 Snippet by koshikojha

<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <!------ Include the above in your HEAD tag ----------> <html> <head> <link href="https://fonts.googleapis.com/css?family=Lato:300,400&display=swap" rel="stylesheet"> </head> <body> <div class="container"> <div class="card-stack"> <a class="buttons prev" href="#"><</a> <ul class="card-list"> <li class="card" style="background: #c31432; /* fallback for old browsers */ background: -webkit-linear-gradient(to right, #240b36, #c31432); /* Chrome 10-25, Safari 5.1-6 */ background: linear-gradient(to right, #240b36, #c31432); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ "> <img src="https://svgshare.com/i/E90.svg" alt="Sun" class="card-list__image"> <h3 class="card-list__text">Watch your way toward success as you excel above your competitors. </h3> </li> <li class="card" style="background: #00416A; background: -webkit-linear-gradient(to right, #FFE000, #799F0C, #00416A); background: linear-gradient(to right, #FFE000, #799F0C, #00416A); "> <img src="https://svgshare.com/i/E9H.svg" alt="Sun" class="card-list__image"> <h3 class="card-list__text">Relax and chill, we've got you covered :) </h3> </li> <li class="card" style="background: #1e3c72; background: -webkit-linear-gradient(to right, #2a5298, #1e3c72); background: linear-gradient(to right, #2a5298, #1e3c72); "> <img src="https://svgshare.com/i/E86.svg" alt="Sun" class="card-list__image"> <h3 class="card-list__text"> Boost your social networking presence</h3> </li> <li class="card" style="background: #2C3E50; background: -webkit-linear-gradient(to right, #FD746C, #2C3E50); background: linear-gradient(to right, #FD746C, #2C3E50); "> <img src="https://svgshare.com/i/E8Y.svg" alt="Sun" class="card-list__image"> <h3 class="card-list__text"> Be at the top of your competitors</h3> </li> <li class="card" style="background: #373B44; background: -webkit-linear-gradient(to right, #4286f4, #373B44); background: linear-gradient(to right, #4286f4, #373B44); "> <img src="https://svgshare.com/i/E9z.svg" alt="Sun" class="card-list__image"> <h3 class="card-list__text"> Create contents for your online courses</h3> </li> </ul> <a class="buttons next" href="#">></a> </div> </div> </body> </html>
html { font-family: 'Lato', sans-serif; } .container { width: 100%; height: 900px; background-color: #fff; padding: 50px 80px; } .container .card-stack { width: 500px; height: 250px; position: absolute; margin: 20px auto; } .container .card-stack .buttons { display: none; position: absolute; background: rgba(0, 0, 0, 0.46); border: 2px solid rgba(255, 255, 255, 0.7); border-radius: 50%; width: 35px; height: 35px; left: 0; top: 55%; color: rgba(255, 255, 255, 0.7); text-align: center; line-height: 35px; text-decoration: none; font-size: 22px; z-index: 100; outline: none; transition: all 0.2s ease; } .container .card-stack .buttons:hover { transform: scale(1.3, 1.3); } .container .card-stack .prev { left: 15px; right: auto; } .container .card-stack .next { left: auto; right: 15px; } .container .card-stack .carousel .buttons:hover { color: #C01313; background: #fff; } .container .card-stack .card-list { width: 300px; } .container .card-stack .card-list__image { height: 200px; } .container .card-stack .card-list__text { color: #fff; font-weight: 300; } .container .card-stack .card-list li { display: flex; align-items: center; justify-content: center; transition: all 100ms ease-in-out; border-radius: 10px; position: absolute; list-style: none; height: 300px; left: 0; right: 0; margin: 0 auto; padding-top: 20px; text-align: center; -webkit-box-shadow: 0 2px 15px 1px rgba(225, 225, 225, 0.5); box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.5); } .container .card-stack .card-list li:nth-child(1) { top: 24px; width: 60%; /* animation: scaleCard 100ms; */ } .container .card-stack .card-list li:nth-child(2) { top: 36px; width: 70%; } .container .card-stack .card-list li:nth-child(3) { top: 48px; width: 80%; } .container .card-stack .card-list li:nth-child(4) { top: 60px; width: 90%; } .container .card-stack .card-list li:nth-child(5) { top: 72px; width: 100%; } .container .card-stack:hover > .buttons.prev { display: block; animation: bounceInLeft 200ms; } .container .card-stack:hover > .buttons.next { display: block; animation: bounceInRight 200ms; } .transformThis { animation: scaleDown 500ms; } .transformPrev { animation: scaleUp 100ms; display: none; } @keyframes scaleUp { 0% { transform: scale(1.2) translateY(50px); opacity: 0; } 20% { transform: scale(1.15) translateY(40px); opacity: 0.1; } 40% { transform: scale(1.1) translateY(30px); opacity: 0.2; } 60% { transform: scale(1.05) translateY(20px); opacity: 0.4; } 80% { transform: scale(1.01) translateY(10px); opacity: 0.8; } 100% { transform: scale(1) translateY(0); opacity: 1; } } @keyframes scaleDown { 0% { transform: scale(1) translateY(0); opacity: 1; } 20% { transform: scale(1.01) translateY(20px); opacity: 0.8; } 40% { transform: scale(1.05) translateY(40px); opacity: 0.4; } 60% { transform: scale(1.1) translateY(60px); opacity: 0.2; } 80% { transform: scale(1.15) translateY(80px); opacity: 0.1; } 100% { transform: scale(1.2) translateY(100px); opacity: 0; } } @keyframes scaleCard { 0% { top: 5px; } 100% { top: 24px; } } @keyframes bounceInLeft { 0% { opacity: 0; transform: translateX(40px); } 100% { transform: translateX(0); } } @keyframes bounceInRight { 0% { opacity: 0; transform: translateX(-40px); } 100% { transform: translateX(0); } }
var $card = $('.card'); var lastCard = $(".card-list .card").length - 1; $('.next').click(function(){ var prependList = function() { if( $('.card').hasClass('activeNow') ) { var $slicedCard = $('.card').slice(lastCard).removeClass('transformThis activeNow'); $('ul').prepend($slicedCard); } } $('li').last().removeClass('transformPrev').addClass('transformThis').prev().addClass('activeNow'); setTimeout(function(){prependList(); }, 150); }); $('.prev').click(function() { var appendToList = function() { if( $('.card').hasClass('activeNow') ) { var $slicedCard = $('.card').slice(0, 1).addClass('transformPrev'); $('.card-list').append($slicedCard); }} $('li').removeClass('transformPrev').last().addClass('activeNow').prevAll().removeClass('activeNow'); setTimeout(function(){appendToList();}, 150); });

Related: See More


Questions / Comments: