Multiple Carousel In HTML, CSS and JavaScript | Source Code

14 minute read
0

 In this article, we going to learn how to make a carousel using plain HTML, CSS, and JavaScript without using any library framework. A carousel is a slideshow that contains a collection of rotating banners or images like the below image. Usually, you can see carousels on the home page of a website. It makes your website more attractive.

We gotta make 4 images carousel that can be controlled by buttons placed at bottom of the carousel. There is a text at the center of the carousel which is fixed and can't move with movement in the image. The images are moving after a fixed interval of user clicks.

We are using HTML as a basic structure for our carousel and CSS to decorate it. Below is the step-by-step procedure that we will be going to follow


Step 1: Place this HTML starting code in your HTML file

Starting section

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Multiple Carousel</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.2/font/bootstrap-icons.css"> </head> <body> </body> </html>

Step 2: Next step is placing this HTML between the <body> tag

HTML Markup

<div class="carousel-container"> <div class="inner-carousel"> <div class="track"> <div class="card-container"> <div class="card card1"></div> </div> <div class="card-container"> <div class="card card2"></div> </div> <div class="card-container"> <div class="card card3"></div> </div> <div class="card-container"> <div class="card card4"></div> </div> <div class="card-container"> <div class="card card5"></div> </div> <div class="card-container"> <div class="card card6"></div> </div> <div class="card-container"> <div class="card card7"></div> </div> <div class="card-container"> <div class="card card8"></div> </div> <div class="card-container"> <div class="card card9"></div> </div> <div class="card-container"> <div class="card card10">1</div> </div> <div class="card-container"> <div class="card card11">1</div> </div> <div class="card-container"> <div class="card card12">12</div> </div> </div> <div class="nav"> <button class="prev"><i class="bi bi-arrow-left-circle"></i></button> <button class="next"><i class="bi bi-arrow-right-circle"></i></button> </div> </div> </div>

Step 3: Paste this CSS code to your CSS file

CSS Markup

* { box-sizing: border-box; margin: 0; padding: 0; } img { max-width: 100%; } .carousel-container { width: 1100px; margin: 50px auto; position: relative; border-left-width: 4px; border-left-style: solid; border-left-color: #aaa; } @media (max-width: 768px) { .carousel-container { width: 95%; } } .inner-carousel { width: 100%; height: 400px; overflow: hidden; } .track { display: inline-flex; height: 100%; transition: transform 0.2s ease-in-out; } .card-container { width: 275px; height: 400px; flex-shrink: 0; padding-right: 10px; } @media (max-width: 768px) { .card-container { width: 184px; } } .card { width: 100%; height: 100%; /*display: flex; flex-direction: column; justify-content: center; align-items: center;*/ background-position: center bottom; background-size: center; background-repeat: no-repeat; border-radius: 10px; } .card1 { background-image: url("https://cdn.pixabay.com/photo/2018/08/21/23/29/fog-3622519_960_720.jpg"); } .card2 { background-image: url("https://cdn.pixabay.com/photo/2016/11/14/04/45/elephant-1822636_960_720.jpg"); } .card3 { background-image: url("https://cdn.pixabay.com/photo/2016/08/11/23/48/italy-1587287_960_720.jpg"); } .card4 { background-image: url("https://cdn.pixabay.com/photo/2014/08/29/03/02/horse-430441_960_720.jpg"); } .card5 { background-image: url("https://cdn.pixabay.com/photo/2014/12/08/17/52/mare-561221_960_720.jpg"); } .card6 { background-image: url("https://cdn.pixabay.com/photo/2017/02/08/17/24/butterfly-2049567_960_720.jpg"); } .card7 { background-image: url("https://cdn.pixabay.com/photo/2017/11/30/22/00/pumpkin-2989569_960_720.jpg"); } .card8 { background-image: url("https://cdn.pixabay.com/photo/2016/07/24/22/25/woman-1539416_960_720.jpg"); } .card9 { background-image: url("https://cdn.pixabay.com/photo/2017/11/15/09/28/music-player-2951399_960_720.jpg"); } .card10 { background-image: url("https://cdn.pixabay.com/photo/2018/02/23/04/38/laptop-3174729_960_720.jpg"); } .card11 { background-image: url("https://cdn.pixabay.com/photo/2016/03/09/09/30/woman-1245817_960_720.jpg"); } .card12 { background-image: url("https://cdn.pixabay.com/photo/2016/11/08/05/31/adorable-1807544_960_720.jpg"); } .nav button { position: absolute; top: 50%; transform: translatey(-50%); width: 60px; height: 60px; border-radius: 50%; outline: none; border: 1px solid #000; cursor: pointer; } .nav .prev { left: -30px; display: none; } .nav .prev.show { display: block; } .nav .next { right: -30px; } .nav .next.hide { display: none; }

Step 4: You need to paste this JavaScrip code in your file is already

Javascript Markup

const prev = document.querySelector(".prev"); const next = document.querySelector(".next"); const carousel = document.querySelector(".carousel-container"); const track = document.querySelector(".track"); let width = carousel.offsetWidth; let index = 0; window.addEventListener("resize", function () { width = carousel.offsetWidth; }); next.addEventListener("click", function (e) { e.preventDefault(); index = index + 1; prev.classList.add("show"); track.style.transform = "translateX(" + index * -width + "px)"; if (track.offsetWidth - index * width < index * width) { next.classList.add("hide"); } }); prev.addEventListener("click", function () { index = index - 1; next.classList.remove("hide"); if (index === 0) { prev.classList.remove("show"); } track.style.transform = "translateX(" + index * -width + "px)"; });

You done

Follow us: https://linktr.ee/reanfullstack

Post a Comment

0Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.
Post a Comment (0)