WEBLEB
Home
Editor
Login
Pro
English
English
Français
Español
Português
Deutsch
Italiano
हिंदी
League of legends slider gallery
1253
Andev.web
Open In Editor
Publish Your Code
Recommended
18 August 2024
Gallery of sites with hover and blur effect
11 May 2024
Toggle On-Off
27 November 2024
Responsive Image Slider
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(); }) })