WEBLEB
Home
Editor
Login
Pro
English
English
Français
Español
Português
Deutsch
Italiano
हिंदी
League of legends slider gallery
1004
Andev.web
Open In Editor
Publish Your Code
Recommended
20 June 2024
Animal gallery
24 December 2023
Coffee Shop Landing Page
1 June 2025
Home Image Slider Effect Website
HTML
Copy
Andev Web
Andev.Web
Home
Blog
Info
The Frost Archer
Ashe
The Nine-Tailed Fox
Ahri
The Might of Demacia
Garen
The Storm's Fury
Janna
The Sinister Blade
Katarina
<
>
Ashe
Ahri
Garen
Janna
Katarina
CSS
Copy
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); body{ font-family: Poppins; margin: 0; background-color: #010101; color: #eee; } svg{ width: 25px; } header{ width: 1200px; max-width: 90%; margin: auto; display: grid; grid-template-columns: 50px 1fr 50px; grid-template-rows: 50px; justify-content: center; align-items: center; position: relative; z-index: 100; } header .logo{ font-weight: bold; } header .menu{ padding: 0; margin: 0; list-style: none; display: flex; justify-content: center; gap: 20px; font-weight: 500; } /* css slider */ .slider{ height: 100vh; margin-top: -50px; position: relative; } .slider .list .item{ position: absolute; inset: 0 0 0 0; overflow: hidden; opacity: 0; transition: .5s; } .slider .list .item img{ width: 100%; height: 100%; object-fit: cover; } .slider .list .item::after{ content: ''; width: 100%; height: 100%; position: absolute; left: 0; bottom: 0; background-image: linear-gradient( to top, #000 40%, transparent ); } .slider .list .item .content{ position: absolute; left: 10%; top: 20%; width: 500px; max-width: 80%; z-index: 1; } .slider .list .item .content p:nth-child(1){ text-transform: uppercase; letter-spacing: 10px; } .slider .list .item .content h2{ font-size: 100px; margin: 0; } .slider .list .item.active{ opacity: 1; z-index: 10; } @keyframes showContent { to{ transform: translateY(0); filter: blur(0); opacity: 1; } } .slider .list .item.active p:nth-child(1), .slider .list .item.active h2, .slider .list .item.active p:nth-child(3){ transform: translateY(30px); filter: blur(20px); opacity: 0; animation: showContent .5s .7s ease-in-out 1 forwards; } .slider .list .item.active h2{ animation-delay: 1s; } .slider .list .item.active p:nth-child(3){ animation-duration: 1.3s; } .arrows{ position: absolute; top: 30%; right: 50px; z-index: 100; } .arrows button{ background-color: #eee5; border: none; font-family: monospace; width: 40px; height: 40px; border-radius: 5px; font-size: x-large; color: #eee; transition: .5s; } .arrows button:hover{ background-color: #eee; color: black; } .thumbnail{ position: absolute; bottom: 50px; z-index: 11; display: flex; gap: 10px; width: 100%; height: 250px; padding: 0 50px; box-sizing: border-box; overflow: auto; justify-content: center; } .thumbnail::-webkit-scrollbar{ width: 0; } .thumbnail .item{ width: 150px; height: 220px; filter: brightness(.5); transition: .5s; flex-shrink: 0; } .thumbnail .item img{ width: 100%; height: 100%; object-fit: cover; border-radius: 10px; } .thumbnail .item.active{ filter: brightness(1.5); } .thumbnail .item .content{ position: absolute; inset: auto 10px 10px 10px; } @media screen and (max-width: 678px) { .thumbnail{ justify-content: start; } .slider .list .item .content h2{ font-size: 60px; } .arrows{ top: 10%; } }
JS
Copy
let items = document.querySelectorAll('.slider .list .item'); let next = document.getElementById('next'); let prev = document.getElementById('prev'); let thumbnails = document.querySelectorAll('.thumbnail .item'); // config param let countItem = items.length; let itemActive = 0; // event next click next.onclick = function(){ itemActive = itemActive + 1; if(itemActive >= countItem){ itemActive = 0; } showSlider(); } //event prev click prev.onclick = function(){ itemActive = itemActive - 1; if(itemActive < 0){ itemActive = countItem - 1; } showSlider(); } // auto run slider let refreshInterval = setInterval(() => { next.click(); }, 5000) function showSlider(){ // remove item active old let itemActiveOld = document.querySelector('.slider .list .item.active'); let thumbnailActiveOld = document.querySelector('.thumbnail .item.active'); itemActiveOld.classList.remove('active'); thumbnailActiveOld.classList.remove('active'); // active new item items[itemActive].classList.add('active'); thumbnails[itemActive].classList.add('active'); // clear auto time run slider clearInterval(refreshInterval); refreshInterval = setInterval(() => { next.click(); }, 5000) } // click thumbnail thumbnails.forEach((thumbnail, index) => { thumbnail.addEventListener('click', () => { itemActive = index; showSlider(); }) })