Aby stworzyć slider ze strzałkami, automatycznym przewijaniem i kropkami, użyjemy HTML, CSS i JavaScriptu. Oto prosty przykład, który możesz zaimplementować na swojej stronie.
Krok 1: HTML
W strukturze HTML stworzymy kontener na slajdy, strzałki i kropki.
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Slider</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="slider">
<div class="slides">
<!-- Każdy slajd -->
<div class="slide active">
<img src="image1.jpg" alt="Image 1">
</div>
<div class="slide">
<img src="image2.jpg" alt="Image 2">
</div>
<div class="slide">
<img src="image3.jpg" alt="Image 3">
</div>
</div>
<!-- Strzałki -->
<button class="prev">❮</button>
<button class="next">❯</button>
<!-- Kropki -->
<div class="dots">
<span class="dot active"></span>
<span class="dot"></span>
<span class="dot"></span>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
Krok 2: CSS
Stworzymy stylizację dla slidera, aby wyglądał dobrze, a także obsłużymy układ dla slajdów, strzałek i kropek.
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.slider {
position: relative;
width: 80%;
max-width: 800px;
overflow: hidden;
border-radius: 10px;
}
.slides {
display: flex;
transition: transform 0.5s ease-in-out;
}
.slide {
min-width: 100%;
transition: opacity 0.5s ease-in-out;
}
.slide img {
width: 100%;
border-radius: 10px;
}
.prev, .next {
position: absolute;
top: 50%;
transform: translateY(-50%);
background-color: rgba(0, 0, 0, 0.5);
color: white;
border: none;
padding: 15px;
cursor: pointer;
border-radius: 50%;
user-select: none;
}
.prev {
left: 10px;
}
.next {
right: 10px;
}
.dots {
position: absolute;
bottom: 10px;
width: 100%;
text-align: center;
}
.dot {
height: 15px;
width: 15px;
margin: 0 5px;
background-color: rgba(255, 255, 255, 0.5);
border-radius: 50%;
display: inline-block;
cursor: pointer;
transition: background-color 0.3s;
}
.dot.active {
background-color: white;
}
Krok 3: JavaScript
Tutaj napiszemy logikę, która będzie obsługiwać przewijanie slajdów za pomocą strzałek, kropek oraz automatyczne przewijanie.
const slides = document.querySelectorAll('.slide');
const dots = document.querySelectorAll('.dot');
const prev = document.querySelector('.prev');
const next = document.querySelector('.next');
let currentIndex = 0;
let autoSlideInterval;
// Funkcja do zmiany slajdu
function showSlide(index) {
slides.forEach((slide, i) => {
slide.classList.toggle('active', i === index);
dots[i].classList.toggle('active', i === index);
});
currentIndex = index;
}
// Funkcja do zmiany na następny slajd
function nextSlide() {
currentIndex = (currentIndex + 1) % slides.length;
showSlide(currentIndex);
}
// Funkcja do zmiany na poprzedni slajd
function prevSlide() {
currentIndex = (currentIndex - 1 + slides.length) % slides.length;
showSlide(currentIndex);
}
// Automatyczne przewijanie
function startAutoSlide() {
autoSlideInterval = setInterval(nextSlide, 3000); // 3000 ms = 3 sekundy
}
// Zatrzymanie automatycznego przewijania
function stopAutoSlide() {
clearInterval(autoSlideInterval);
}
// Event listeners dla strzałek
next.addEventListener('click', () => {
nextSlide();
stopAutoSlide();
startAutoSlide(); // Restart automatycznego przewijania po kliknięciu
});
prev.addEventListener('click', () => {
prevSlide();
stopAutoSlide();
startAutoSlide();
});
// Event listener dla kropek
dots.forEach((dot, index) => {
dot.addEventListener('click', () => {
showSlide(index);
stopAutoSlide();
startAutoSlide();
});
});
// Inicjacja automatycznego przewijania przy załadowaniu strony
startAutoSlide();
Opis działania:
- HTML: Mamy kontener
.slider, w którym umieściliśmy slajdy, strzałki do nawigacji oraz kropki wskazujące na aktywny slajd. - CSS: Stylizujemy slajdy, strzałki oraz kropki. Ustawiamy odpowiednie rozmiary i pozycje.
- JavaScript: Logika slidera, obsługująca zmianę slajdów przez kliknięcie strzałek, kropek oraz automatyczne przewijanie co 3 sekundy.
To jest podstawowy slider, który możesz dostosować według swoich potrzeb, np. dodać więcej funkcji lub animacji.