WEBLEB
Startseite
Editor
Anmelden
Pro
Deutsch
English
Français
Español
Português
Deutsch
Italiano
हिंदी
1117
Andev.web
Im Editor öffnen
Veröffentlichen Sie Ihren Code
Brauchen Sie eine Website?
Empfohlen
27 November 2024
Landing Page - Hotel
22 April 2025
Ein Code von Metehan
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(); }) })