Аккордеон с помощью jQuery. Введение
Сегодня я хочу продолжить серию статей по работе с jQuery, как вам уже, наверняка известно, я стараюсь минимизировать количество подключаемых чужих библиотек и стараюсь все писать сам. Это помогает лучше вникать в программирование, понимать суть тех вещей, которые используются на сайте, да и намного приятней и интересней все делать самому :). И в этой статье я хочу показать как можно легко и быстро сделать, не прибегая к готовым решениям, аккордеон. Аккордеон — это блок, который позволяет уместить на странице гораздо больше информации, за счет того, что отображается только ее часть — заголовки. При клике по заголовку должна плавно раскрыться скрытая часть, и в тоже время скрыться ранее открытая. Для того, чтобы было лучше понятно, что такое аккордеон с помощью jQuery, я привел ниже пример.
Аккордеон с помощью jQuery. Пример
Вторая строка
Вторая строка
Вторая строка
Аккордеон с помощью jQuery. Код
А теперь сам код. Верстка:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Аккордеон с помощью jQuery</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<style>
.accordion label{
border: 1px solid orange;
color: orange;
cursor: pointer;
display: block;
margin-bottom: 3px;
width: 300px;
}
.accordion .content{
display: none;
}
</style>
</head>
<body>
<div class="accordion active">
<label>Заголовок 1</label>
<div class="content">
Контент 1<br/>Вторая строка
</div>
</div>
<div class="accordion">
<label>Заголовок 2</label>
<div class="content">
Контент 2<br/>Вторая строка
</div>
</div>
<div class="accordion">
<label>Заголовок 3</label>
<div class="content">
Контент 3<br/>Вторая строка
</div>
</div>
</body>
</html>
И javaScript:
// после загрузки страницы
$(document).ready(function(){
// запускаем отображение аккордеона
makeAccordion();
// при клике по заголовку
$('.accordion label').click(function(){
// снимаем со всех div`ов класс active
$('.accordion').each(function(){
$(this).removeClass('active');
});
// задаем родительскому div`у класс active
$(this).parent().addClass('active');
// запускаем отображение аккордеона
makeAccordion();
});
});
// функция для отображения аккордеона. Сворачивает и разворачивает
function makeAccordion(){
var speed = 300; // скорость анимации
// перебираем все блоки аккордеона
$('.accordion').each(function(){
if($(this).hasClass('active')){
// если находим активный, то разворачиваем его
$(this).find('.content').slideDown(speed);
}else{
// не активный сворачиваем
$(this).find('.content').slideUp(speed);
}
});
}
На этом все. Прикладываю исходники — скачать.

Классная статья спасибо за разъяснение по аккордеону на jquery