Раскрытие и скрытие div с помощью jquery

Раскрытие и скрытие div с помощью jqueryДанный урок очень прост,  но темне мение эфект раскрытия и скрытия обьектов используется достаточно часто. А мы это сделаем еще и с анимацией.

Не знаю как кому, но я очень часто использую фишку с отображением и скрытием какого либо слоя. Нюанс состоит в том, чтобы передать функции только, к примеру, идентификатор слоя id, а она уж сама, в зависимости от значения свойства CSS — display сменит его на противоположное. jQuery, в этом случа предоставил возможность анимировать процес с раскрытием/закрытием слоя.

Вещь достаточно простая и удобная. Свою функцию я назвал anichange, вот она:

<script>
function anichange (objName) {
  if ( $(objName).css('display') == 'none' ) {
    $(objName).animate({height: 'show'}, 400);
  } else {
    $(objName).animate({height: 'hide'}, 200);
  }
}
</script>

Как это работает? Первое на что стоит обратить свое внимание для ответа на поставленный вопрос это функция css. В моем примере она используется для считывания значения у свойства display объекта objName (может быть значением атрибута id, к примеру: #divId).

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

Как это использовать? И так, с функцией – понятно. Теперь давайте воспользуемся ей на практике. Здесь надо понимать, что должна быть подключена сама библиотека jQuery (скачать jQuery):

<script src="jquery.js" type="text/javascript"></script>

И уже после этой строки идет выше упомянутый код функции anichange. Разместите этот код в том же head, а дальнейший пример в body:

<a href="#" onclick="anichange('#divId'); return false">Открыть/Закрыть</a>
<div id="divId" style="display: none">
Текст в скрытом слое <br>
Текст в скрытом слое <br>
Текст в скрытом слое <br>
Текст в скрытом слое <br>
</div>

Для большей наглядности эффекта анимации, в слой помещен текст из нескольких строк. По умолчанию он не виден, что обеспечивается за счет: style="display: none". При клике по ссылке anichange будет выполнена одноименная функция – слой откроется, а при повторном клике – закроется и так раз за разом.

Вот собственно и все. Думаю, что сказанного, вполне достаточно и без какого либо наглядно работающего примера (не люблю я париться над вставками таковых – сорки). Надеюсь, что кому-то заметка будет полезна и спасибо за внимание.