CSS простой горизонтальный слайдер

Пример подойдёт в случае если нужно сделать простой горизонтальный слайдер без подключения сторонних библиотек. Приведенный код можно взять за основу и доработать под требования конкретной задачи например добавить кнопки навигации, увеличение изображения при клике на слайд и т.д.

<div class="slider-items">
<div class="slider-item"></div>
<div class="slider-item">
<p>Lorem ipsum dolor sit amet, 
consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.</p> </div> <div class="slider-item"></div> <div class="slider-item"></div> <div class="slider-item"></div> </div>
.slider-items {
    width: 100%;
    background-color: gray;
    display: flex;
    flex-direction: row;
    gap: 10px;
    padding: 10px 10px;
    overflow-x: scroll;
    cursor: pointer;
    user-select: none;
    scrollbar-width: none;
}
.slider-items::-webkit-scrollbar {
    display: none;
}
.slider-item {
    width: 220px;
    min-width: 220px;
    height: 180px;
    background-color: black;
    padding: 10px;
    overflow: hidden;
    color: #fff;
}
.slider-item:first-child {
    background-image: url('/files/img/article/css_gorizontalnaya_prokrutka/slide1.png');
    background-size: contain;
}
.slider-item:nth-child(3) {
    background-color: #5820f6;
}
.slider-item:nth-child(4) {
    background-color: #32cb5d;
}
.slider-item:nth-child(5) {
    background-color: #a56ffd;
}
$(document).ready(function(){
	initCustomSlider();
});

function initCustomSlider() {
	const slider = document.querySelector('.slider-items');
	let isDown = false;
	let startX;
	let scrollLeft;

	slider.addEventListener('mousedown', (e) => {
		isDown = true;
		slider.classList.add('active');
		startX = e.pageX - slider.offsetLeft;
		scrollLeft = slider.scrollLeft;
	});
	slider.addEventListener('mouseleave', () => {
		isDown = false;
		slider.classList.remove('active');
	});
	slider.addEventListener('mouseup', () => {
		isDown = false;
		slider.classList.remove('active');
	});
	slider.addEventListener('mousemove', (e) => {
		if (!isDown)
			return;
		e.preventDefault();
		e.stopPropagation();
		const x = e.pageX - slider.offsetLeft;
		const walk = (x - startX) * 2; //scroll-fast
		slider.scrollLeft = scrollLeft - walk;
	});
}

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Рубрики: CSS

Если есть вопросы, что-то в статье не понятно или нашли ошибку, напишите об этом в комментариях, все комментарии читаются и по возможности материал будет доработан.
Популярные статьи

PHP Удалить лишние нули после запятой

Когда в проекте диапазон чисел от 0,0001 до 1 000 000, удобно автоматически удалять лишнии нули после запятой.

Bitrix регистрация своего события

В статье приводится пример регистрации собственного события в bitrix и добавления на него обработчика.

Bitrix запись своих настроек в settings.php

Статья о том как разместить свои настройки не создавая велосипеды и костыли, а используя возможности системы.

Bitrix выполнить произвольный sql запрос

В статье приведен пример как выполнить произвольный sql запрос используя стандартные средства Bitrix

CSS простой горизонтальный слайдер

В статье приводится пример кода для создания простого горизонтального слайдера с использованием CSS и небольшим количеством JS кода. Для реализации потребуется всего около 60 строк стилей и js кода.

Bitrix получить ID текущего покупателя

В статье приводится пример кода для получения ID текущего покупателя в bitrix.

Комментарии

Комментариев пока нет
Данный сайт использует файлы cookies. Продолжая просмотр сайта, вы соглашаетесь с использованием файлов cookies.
ОК