Будем создавать слайдер изображений на JavaScript, CSS и HTML. Слайдер будет иметь возможность перелистывать картинки автоматически и с кнопками назад и вперед и эффектом переходов.
- Создайте HTML-разметку для слайдера, включающую контейнер для изображений, кнопки вперед и назад и классы для стилизации.
<!DOCTYPE html> <html> <head> <title>Image Slider</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="slider"> <div class="slider-container"> <img src="images/img1.jpeg" alt="image1" class="active"> <img src="images/img2.jpeg" alt="image2"> <img src="images/img3.jpeg" alt="image3"> </div> <div class="buttons"> <button class="prev">Previous</button> <button class="next">Next</button> </div> </div> <script src="script.js"></script> </body> </html>
Создайте JavaScript-код для обработки кликов по кнопкам и отображения следующего или предыдущего изображения. Используйте querySelectorAll для получения всех изображений в слайдере и classList.add и classList.remove для управления активным классом.
const images = document.querySelectorAll('.slider-container img'); const prev = document.querySelector('.prev'); const next = document.querySelector('.next'); let current = 0; prev.addEventListener('click', () => { images[current].classList.remove('active'); current--; if (current < 0) { current = images.length - 1; } images[current].classList.add('active'); }); next.addEventListener('click', () => { images[current].classList.remove('active'); current++; if (current === images.length) { current = 0; } images[current].classList.add('active'); });
Этот код создает слайдер с кнопками “вперед” и “назад”, которые позволяют переключать изображения вручную. Эффект перехода между изображениями создается с помощью CSS-анимации.
Однако, этот код является базовым и может быть расширен и доработан для добавления дополнительных функций, например индикаторов слайдов, адаптивного дизайна и т.д.
Мы можем добавить функциональность автоматическое переключение слайдов с интервалом в 3 секунды.
// Автоматически перелистываются картинки каждые 3 секунды setInterval(() => { images[current].classList.remove('active'); current++; if (current === images.length) { current = 0; } images[current].classList.add('active'); }, 3000);
Добавляем базовые стили с помощью CSS
#slider { width: 500px; height: 500px; margin: 0 auto; position: relative; } .slider-container img { transition: all 0.5s ease; opacity: 0; width: 100%; position: absolute; z-index: 1; } .slider-container img.active { opacity: 1; } .buttons { position: relative; z-index: 2; } .buttons button { border: 1px solid #ccc; width: 100px; height: 50px; line-height: 50px; text-align: center; color: #fff; background-color: black; font-weight: bold; opacity: 0.9; } .buttons button:hover { opacity: 0.6; cursor: pointer; }
Наш простой слайдер готов к использованию.
No Comments
Leave a comment Cancel