WEBLEB
Accueil
Éditeur
Connexion
Pro
Français
English
Français
Español
Português
Deutsch
Italiano
हिंदी
Galerie de diapositives de League of Legends
1252
Andev.web
Ouvrir dans l'éditeur
Publiez votre code
Recommandé
23 August 2025
Modèle HTML/CSS de page de connexion de luxe
15 August 2025
Structure de mise en page CSS Office
29 January 2025
Un code par sheeshokaokayokay
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(); }) })