3 ноября 2013
4544
меню аккордеон, jquery

Меню аккордеон на JQuery

JQuery
Демонстрация » Скачать »

Поговорим сегодня о навигационном меню аккордеон, который будет полезен в тот момент, когда имеется много ссылок и их надо каким-либо удобным образом скомпоновать. Суть работы скрипта следующая: при нажатии на ссылку категорию, открывается список всех ссылок на подкатегории, если нажать другую категорию, то предыдущая категория становится не активной и сворачивается. Помимо данного меню аккордеон, имеется еще много других, к примеру: адаптивное меню SlickNavменю для сайта Superfishфиксированное меню на JQuery и другие.

 

 

ШАГ ПЕРВЫЙ. JQuery. Картинки.

 

Подключим для начала библиотеку jquery.min.js. 

 

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

 

Теперь создаем функцию, которая будет сворачивать и разворачивать категории. Делается это при помощи указания класса div_cat, а также при событии click. Для отображения смены картинок - link.png и hover.png, мы будем использовать классы, которые будут изменять их положение при сворачивании и разворачивании категорий. Создаем сначала класс, который будет отображать развернутые категории, открываться будет в режиме времени 500мм.сек, затем для сворачивания. Не забываем везде указывать класс div_id, он будет отвечать за ссылки подкатегорий. С помощью свойства backgroundImage будем указывать директорию картинок.

Как Вы, наверно, уже догадались, все картинки будут храниться в папке img, а библиотека jquery.min.js в папке js.

 

<script type="text/javascript">
$(document).ready(function()
{
$("div.div_cat").click(function()
{
$(this).css({backgroundImage:"url(img/link.png)"})
.next("div.div_id").slideToggle(500)
.siblings("div.div_id").slideUp("toggle");
$(this).siblings().css({backgroundImage:"url(img/hover.png)"});
});
});
</script>

 

 

ШАГ ВТОРОЙ. HTML.

 

В коде html, основные моменты стоит учесть при взаимодействии двух классов  - div_cat и div_id. Первый отвечает за работу сворачивания и разворачивания категорий, второй за скрытие с помощью свойства display: none ссылок подкатегорий.

 

<div class="div_cat">Ford</div>
 <div class="div_id">
   <a href="#">Focus</a>
   <a href="#">Fiesta</a>
   <a href="#">KA</a>
   <a href="#">Laser</a>
   <a href="#">Sierra</a>
   <a href="#">GT</a>
   <a href="#">Flex</a>
   <a href="#">Fusion</a>
   <a href="#">Kuga</a>
 </div>
<div class="div_cat">Audi</div>
 <div class="div_id">
     <a href="#">A1</a>
     <a href="#">200</a>
     <a href="#">Q3</a>
     <a href="#">TT</a>
     <a href="#">AllRoad</a>
     <a href="#">Quattro</a>
     <a href="#">R8</a>
     <a href="#">A2</a>
     <a href="#">A3</a>
     <a href="#">A4</a>
     <a href="#">A5</a>
     <a href="#">Coupe</a>
     <a href="#">Cabriolet</a>
     <a href="#">NSU RO 80</a>
     <a href="#">RS2</a>
     <a href="#">RS3</a>
     <a href="#">RS4</a>
     <a href="#">RS5</a>
     <a href="#">RS6</a>
     <a href="#">RS7</a>
     <a href="#">SQ5</a>
 </div> 

 

 

ШАГ ТРЕТИЙ. CSS.

 

В стилях класс div_cat отвечает за все категории, которые также имеют справа значок картинку желтого и красного цвета при сворачивании и разворачивании. Класс div_id имеет обязательное свойство backgroud: white no-repeat, что позволяет закрывать белым цветом картинки красного и желтого цвета, также как уже говорилось выше, имеется обязательное свойство display: none, которое позволяет скрывать ссылки подкатегорий. В классе div_id a, который придает ссылкам нужные свойства, стоит отметить background: white, который придает фону белый цвет.

 

.div_cat {
  padding: 5px 5px;
    cursor: pointer;
    margin:4px;
  background: #9e8eff url("img/hover.png") no-repeat right;
    color: white;
  font-size: 14px;
  width:430px;
}

.div_id {
  background: white no-repeat;
    display: none; 
  margin-top: 5px;
  margin-bottom: 10px;
  padding-bottom: 10px;
}

.div_id a{      
  color:blue;
  background: white;
  text-decoration:none;
  padding: 5px 5px;
  font-size: 14px;
 }

.div_id a:hover{
  color: red;
  text-decoration: none;
}

 

Надеюсь, моя работа со скриптом меню аккордеона,вам понравилась и сможете ее применить у себя на сайте. Большое спасибо за внимание! Отвечу на все вопросы, оставляйте свои комментарии!