Авторизация

Рубрики блога


Рекомендуем



Последние комментарии

Облако тегов


Устами великих

"Странный этот мир, где двое смотрят на одно и то же, а видят полностью противоположное." © Агата Кристи

Мы Вконтакте

Записки вебмастера Рубрика, которая призвана собрать коллекцию полезных скриптов и авторских решений, интересных особенностей и стандартов верстки, решение вопросов юзабилити и функционала, полезных ресурсов и программ.
29
Янв

Simple Spoiler - простой спойлер прямо в тексте на jQuery

рейтинг материал 0.0 (0) | количество просмотров 3195 | количество коментариев 0
Самый простой на вид спойлер, который поможет скрыть дополнительную информацию прямо в тексте, так чтобы не сильно нагромождать читателя.
View demo

Если вам нужно вставить какую-то дополнительную информацию прямо в тексте статьи или описания материала и скрыть ее спойлером, то вам пригодится этот скрипт.

Используется он, кстати, и здесь в самом низу страницы, где расположена информация о сайте - для того чтобы не сильно загромождать пространство избытком информации описание спецрубрик спрятано с помощью этого спойлера. Собственно, только для этой цели он и был написан)

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

HTML код-конструкция, из которой состоит спойлер (вставлять там где вам необходимо, чтобы был сам спойлер ясное дело между тегами body):

<div>Какой-то очень важный текст 

 <span class="textopen"> больше...</span>

 <span class="textfade">скрываемый текст как 
 дополнительное описание
 и продолжение 

 <span class="textclose">свернуть</span>

 </span>

</div>

PS Переносы строк добавлены исключительно для большей читабельности блочной структуры.

Добавим небольшие стилевые настройки к этой конструкции (CSS стили желательно вставлять между тегами head):

<style>
.textfade {
 display:none;
}
.textclose {
 cursor:pointer;
 color:#056399;
}
.textopen {
 cursor:pointer;
 color:#056399;
}
</style>

И javascript код, который заставляет эту конструкцию работать как нужно (вставляем в самом низу страницы, до закрывающего тега body):

<script type="text/javascript">
$(document).ready(function() {
 $('.textopen').click(function() {
 $(this).slideToggle('slow');
 $(this).parent().children('.textfade').slideToggle('slow');
 })
 $('.textclose').click(function() {
 $(this).parent().parent().children('.textfade').slideToggle('slow');
 $(this).parent().parent().children('.textopen').slideToggle('fast');
 })
});
</script>

Напоминаю, что код написан на jQuery, поэтому чтобы он заработал, необходимо чтобы на странице была подключена библиотека jQuery версии не ниже 1.7.2

Если нужно чтобы спойлер был не с новой строки, а в тексте, прямо посреди абзаца, то в конструкции HTML внешний блок div необходимо заменить на span, и вот что получится:

<span>Какой-то очень важный текст 

 <span class="textopen"> больше...</span>

 <span class="textfade">скрываемый текст как 
 дополнительное описание
 и продолжение 

 <span class="textclose">свернуть</span>

 </span>

</span>
View demo
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]