НАЗВАНИЕ
Удобный простой слайдер, который подойдёт в том числе для объявления/шапки или личной страницы на ролевых :з
Автор: Feizerr
html, ставим туда, где должен отображаться слайдер:
Скрипт. Ставим под html слайдера или сохраняем в блокноте с расширением .js без тега <script>, загружаем в файлы форума и вставляем под html слайдера в формате <script src="ссылка на скрипт"></script>
Стиль. Ставим в одно из окон стиля в админке или в тегах <style> туда, где будет слайдер, желательно над html-кодом:
Если у вас предполагаются не картинки в слайдере, а, например, блоки с информационным наполнением, то заменяем html следующим образом:
<!-- Простой слайдер -->
<div class="slider-container">
<button class="prev-button" aria-label="Посмотреть предыдущий слайд"><</button>
<div class="slider">
<div class="page">тут ваш контент</div>
<div class="page">тут ваш контент</div>
</div>
<button class="next-button" aria-label="Посмотреть следующий слайд">></button>
</div>Элементов <div class="page"></div> можно сделать сколько угодно. Если предполагается, что у элементов будет разное наполнение, можно добавить дополнительные классы или id, например <div class="page page1""></div> или <div id="page1" class="page""></div>
А в скрипте делаем следующие изменения:
<script>
// Получаем элементы слайдера
const slider = document.querySelector('.slider');
const prevButton = document.querySelector('.prev-button');
const nextButton = document.querySelector('.next-button');
const slides = Array.from(slider.querySelectorAll('.page'));
const slideCount = slides.length;
let slideIndex = 0;// Устанавливаем обработчики событий для кнопок
prevButton.addEventListener('click', showPreviousSlide);
nextButton.addEventListener('click', showNextSlide);// Функция для показа предыдущего слайда
function showPreviousSlide() {
slideIndex = (slideIndex - 1 + slideCount) % slideCount;
updateSlider();
}// Функция для показа следующего слайда
function showNextSlide() {
slideIndex = (slideIndex + 1) % slideCount;
updateSlider();
}// Функция для обновления отображения слайдера
function updateSlider() {
slides.forEach((slide, index) => {
if (index === slideIndex) {
slide.style.display = 'block';
} else {
slide.style.display = 'none';
}
});
}// Инициализация слайдера
updateSlider();
</script>И в стиле пишем следующее:
.slider-container {
position: relative;
width: 600px;
height: 400px;
margin: 0 auto;
overflow: hidden;
display: flex; /* чтобы выровнять кнопки */
align-items: center; /* чтобы выровнять кнопки */
gap: 5px; /* задать расстояние между кнопками и контентом */
}.slider {
display: flex;
transition: transform 0.5s ease-in-out;
}.slider .page {
width: 460px;
height: 400px;
display: block;
}.prev-button,
.next-button {
position: relative; /* чтобы кнопки не перекрывали контент */
width: 50px;
height: 50px;
background: white; /* фон кнопок */
border: none;
font-size: 24px;
color: black; /* цвет надписей на кнопках */
cursor: pointer; /* чтобы курсор менялся */
}P.S. Если неохота разбираться в том, как всё устроено, ловите готовый пример: ссылка
Отредактировано бродяга (03.11.24 15:12)
- Подпись автора