Сейчас: 03:47:00   25-го апреля 2024 г.
UsefulScript.ruСкриптыРазныеУниверсальный спойлер
8
46

Универсальный спойлер для сайта

Ранее в теме Собственный спойлер с плавным открытием и скрытием содержимого мы уже предлагали Вам скрипт спойлера с плавным появлением и плавным скрытием содержимого. Но в комментариях к данной теме поступило много просьб по улучшению данного кода.


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


Для ознакомления с работой описанного скрипта спойлера, обратите внимание на спойлеры, расположенные ниже:


ЗАГОЛОВОК НОМЕР 1

Содержимое первого спойлера

ЗАГОЛОВОК НОМЕР 2

Содержимое, которое видно при первоначальной загрузке

ЗАГОЛОВОК НОМЕР 3

Содержимое третьего спойлера

Для реализации спойлера, как в примере, продемонстрированном выше, Вам потребуется подключить библиотеку jQuery следующим образом:

JavaScript код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>

Для того чтобы спойлеры выглядели так же хорошо, как в рассмотренном примере, необходимо добавить в шапку сайта между тегами <head> и </head> CSS стили для них:

HTML код:
<style type="text/css">
.
spoiler {
    
overflowhidden;
    
margin-bottom20px;
    
border1px solid #BBBBBB;
    
border-radius7px;
    
box-shadow0 0 9px #DDDDDD inset;
}

.
title_h3 {
    
cursorpointer;
    
background#DDDDDD;
    
margin0;
    
padding8px;
    
border-radius7px 7px 0 0;
    
box-shadow0 0 9px #DDDDDD inset;
}

.
closed .contents displaynone; }

.
closed h3 background#BBBBBB; }

.contents padding10px; }
</
style>

Далее, в том месте Вашей странички, где Вы планируете разместить спойлеры, необходимо добавить следующий код:

HTML код:
<div class="spoiler closed">
    <
div class="title"><h3 class="title_h3">ЗАГОЛОВОК НОМЕР 1</h3></div>
    <
div class="contents">Содержимое первого спойлера</div>
</
div>

<
div class="spoiler">
    <
div class="title"><h3 class="title_h3">ЗАГОЛОВОК НОМЕР 2</h3></div>
    <
div class="contents">Содержимоекоторое видно при первоначальной загрузке</div>
</
div>

<
div class="spoiler closed">
    <
div class="title"><h3 class="title_h3">ЗАГОЛОВОК НОМЕР 3</h3></div>
    <
div class="contents">Содержимое третьего спойлера</div>
</
div>

Обращаем Ваше внимание на то, что если Вам необходимо, чтобы какой-нибудь спойлер после загрузки странички был изначально открыт, то стоит указывать <div class="spoiler">.

Если Вам нужен первоначально закрытый спойлер, то тогда добавьте класс closed блоку спойлера: <div class="spoiler closed">.


Далее остается только добавить JavaScript код, который при помощи jQuery будет отвечать за плавное открытие и закрытие спойлеров, а также изменять цвет фона их заголовков:

JavaScript код:
<script type="text/javascript">
$(
".closed").toggleClass("show");

$(
".title").click(function(){
 $(
this).parent().toggleClass("show").children(".contents").slideToggle("medium");
 if ($(
this).parent().hasClass("show"))
     $(
this).children(".title_h3").css("background""#BBBBBB");
 else $(
this).children(".title_h3").css("background""#DDDDDD");
});
</script>

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

Дата создания: 23:15:45 17.04.2013 г.
Посещений: 8355 раз(а).

Комментарии посетителей (4 шт.):
Sergey1917
0
# 805
(00:13:02  18.04.2013 г.)

Классная вещь, то что надо было. Сколько часов провел в интернете в поисках подобного. И еще больше на их проверку и обкатку. И от большинства из них приходилось отказываться сразу. А с другими мучиться, чтобы получить все функции, доступные в этом спойлере (все не получилось). Так что забираю. Мастер спасибо!
А как сделать фон для контента, отличающимся от фона страницы?
Ответить

Administrator
2
# 807
(23:03:55  18.04.2013 г.)

В стиле .spoiler добавить фон, например, background: #ff0000;
Еще несколько интересных модификаций для данного скрипта можно найти на нашем форуме по ссылке.
Ответить

Евгений
0
# 3638
(03:56:19  26.12.2016 г.)

Странно, но у меня не в какую не хочет работать, даже ошибок не пишет.
Ответить

Administrator
0
# 3639
(20:34:46  26.12.2016 г.)

А на данной страничке работает? Если да, то возможно, Вы не в то место сайта данный код добавляете.
Ответить

Закрыть
Ваше имя:
313 + 1 =
Добавить комментарий:
Ваше имя:
313 + 1 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 6

Какие темы необходимо добавлять на сайт?