Простой HTML+JS спойлер

Простой код спойлерера для удобного использования в любом месте шаблона сайта.

HTML:

<a href="#" class="spoiler-trigger"><span>Развернуть спойлер</span></a>
<div class="spoiler-block">Скрытый контент спойлера</div>

Если будет выводиться несколько спойлеров подряд, то каждый из блоков необходимо оборачивать в какой-нибудь тег: div, li и т.п.

Можно сделать чтобы блок по умолчанию был открыт:

<a href="#" class="spoiler-trigger active"><span>Развернуть спойлер</span></a>
<div class="spoiler-block" style="display: block;">Скрытый контент спойлера</div>

CSS:

.spoiler-trigger{
	color: #0b70db;
	text-decoration: none;
	padding-left: 15px;
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAANUlEQVQoU2PkLrj9n4EAYAQp+jpBlRGXOpA8hiJ0TaQrwuY2kDNINwnmcKLchO5LuHWEwgkAlO5FBwhFaI8AAAAASUVORK5CYII=) no-repeat 0 50%;
}
.spoiler-trigger.active{
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKklEQVQoU2PkLrj9n4EAYAQp+jpBlRGXOpA8DRRhcxvIGTSyjqDvCIUTAEcINQcERZkIAAAAAElFTkSuQmCC);
}
.spoiler-trigger>span{
	border-bottom: 1px dashed #0b70db;
	padding:0 3px;
}
.spoiler-trigger:hover>span{
	border-bottom-style: solid;
}
.spoiler-block{
	display: none;
}

JS:

$(document).on('click','.spoiler-trigger',function(e){e.preventDefault();$(this).toggleClass('active');$(this).parent().find('.spoiler-block').first().slideToggle(300);})

Примеры:

Спойлер 1
Открытый контент первого спойлера
Спойлер вложенный
Текст скрытого вложенного спойлера

Спойлер 2
Скрытый контент второго спойлера
Простой HTML+JS спойлер

HTML код примеров

<div>
	<a href="#" class="spoiler-trigger active"><span>Спойлер 1</span></a>
	<div class="spoiler-block" style="display:block;">Открытый контент первого спойлера
<div>
	<a href="#" class="spoiler-trigger active"><span>Спойлер вложенный</span></a>
	<div class="spoiler-block">Текст скрытого вложенного спойлера</div>
</div></div>
</div>
<div>
	<a href="#" class="spoiler-trigger"><span>Спойлер 2</span></a>
	<div class="spoiler-block">Скрытый контент второго спойлера
		<img src="http://sandev.pro/uploads/posts/2016-11/1479545446_screenshot_2.png" alt="" />
	</div>
</div>
<div><a href="#" class="spoiler-trigger"><span>HTML код примеров</span></a>
	<div class="spoiler-block"></div>
</div>

С уважением,
Олег Александрович a.k.a. Sander
Источник: sandev.pro

Просмотров:

Добавить комментарий