Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Все для Ucoz » Скрипты » Меню ( аккордеон ) (Скрипт)
Меню ( аккордеон )
cska7777777Дата: Четверг, 31.12.2009, 18:16 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 474
Статус: Offline

Шаг №1 - XHTML
Code
demo.html  
<li class="menu">   
<ul>   
<li class="button"><a href="#" class="green">Kiwis <span></span></a></li>  

<li class="dropdown">  
<ul> <!-- Этот список содержит опции, которые выпадают с помощью jQuery -->  

<!-- Каждая опция в своем LI -->  
<li><a href="http://en.wikipedia.org/wiki/Kiwifruit">Read on Wikipedia</a></li>  

<li><a href="http://www.flickr.com/search/?w=all&q=kiwi&m=text">Flickr   
Stream</a></li>  
</ul>  
</li>  
</ul>  
</li>

Каждый элемент LI содержит UL, который формирует площадь для названия (li.button) и площадь для контента (li.dropdown).

Также у нас элемент якоря находится внутри li.button (кнопка с классом). Эта ссылка позднее будет привязана к специальному событию в jQuery, которое будет открывать секцию со списком при нажатии на ссылку.

Также важно заметить, что элементы списка dropdown спрятаны по умолчанию с помощью свойства CSS display:none.

Шаг №2 - CSS

Code
demo.css  
body{  
/* Задаем цвет по умолчанию, фон и шрифт */  
color:#cccccc;  
font-size:13px;  
background: #302b23;  
font-family:Arial, Helvetica, sans-serif;  
}  

ul{  
margin:0;  
padding:0;  
}  

ul.container{  
/* главный UL */  
width:240px;  
margin:0 auto;  
padding:50px;  
}  

li{  
list-style:none;  
text-align:left;  
}  

li.menu{  
/* Главные элементы списка */  
padding:5px 0;  
width:100%;  
}  

li.button a{  
display:block;  
font-family:BPreplay,Arial,Helvetica,sans-serif;  
font-size:21px;  
height:34px;  
overflow:hidden;  
padding:10px 20px 0;  
position:relative;  
width:200px;  
}  

li.button a:hover{  
/* Removing the inherited underline from the titles */  
text-decoration:none;  
}  

li.button a span{  
/* Этот span играет как правая часть фона секции */  
height:44px;  
position:absolute;  
right:0;  
top:0;  
width:4px;  
display:block;  
}  

/* Разные цветовые схемы для разных отделов */  

li.button a.blue{background:url(img/blue.png) repeat-x top left; color:#074384;}  
li.button a.blue span{ background:url(img/blue.png) repeat-x top right;}  

li.button a.green{background:url(img/green.png) repeat-x top left; color:#436800;}  
li.button a.green span{ background:url(img/green.png) repeat-x top right;}  

li.button a.orange{background:url(img/orange.png) repeat-x top left; color:#882e02;}  
li.button a.orange span{ background:url(img/orange.png) repeat-x top right;}  

li.button a.red{background:url(img/red.png) repeat-x top left; color:#641603;}  
li.button a.red span{ background:url(img/red.png) repeat-x top right;}  

/* Эффекты при наведении */  

li.button a:hover{ background-position:bottom left;}  
li.button a:hover span{ background-position:bottom right;}  

.dropdown{  
/* Расширяющиеся списки */  
display:none;  
padding-top:5px;  
width:100%;  
}  

.dropdown li{  
/* Каждый элемент в таких списках */  
background-color:#373128;  
border:1px solid #40392C;  
color:#CCCCCC;  
margin:5px 0;  
padding:4px 18px;  
}

Шаг №3 - jQuery

Для начала подключаем все необходимые скрипты в шапке документа:

Code
Code
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
<script type="text/javascript" src="jquery.easing.1.3.js"></script>  
<script type="text/javascript" src="script.js"></script>

Как Вы могли заметить в демо панель выезжает не плавно а с прыжками. Это достигается с помощью плагина easing. Плагин имеет множество разных эффектов, и Вы сможете экспериментировать с ними.
Code
script.js  
$(document).ready(function(){  
/* Скрипт будет выполнен после загрузки страницы */  
/* Смена эффекта для плагина easing */  
$.easing.def = "easeOutBounce";  
$('li.button a').click(function(e){  
/* Находим соответствующий текущей секции список */  
var dropDown = $(this).parent().next();  
/* Закрываем все другие списки, кроме текущего */  
$('.dropdown').not(dropDown).slideUp('slow');  
dropDown.slideToggle('slow');  
e.preventDefault();  
})  
});

Для начала мы задаем метод для плагина easing, который будет использоваться для эффектов slideUp/slideDown. Далее привязываем специальную функцию к кнопке, которая будет запукать процесс при нажатии.

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

После этого мы используем функцию e.preventDefault() для того, чтобы браузер не переходил на другую страницу после клика.
Спасибо за внимания! Чуть незабыл смотрим Пример
Скачать

 
Форум » Все для Ucoz » Скрипты » Меню ( аккордеон ) (Скрипт)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Футбол на Soccer.ru: Новости футбола России и Европы онлайн, Евро кубки и чемпионаты Live Каталог Казахстанских ресурсов TABU SmartTop.info