Сегодня, я расскажу Вам об одном из самых простых способов создания анимированного выпадающего меню с помощью библиотеки jQuery. Итак, начнём....
Сделаем меню из трёх уровней - само меню и 2 уровня выпадающих. Все необходимые скрипты будем прописывать внутри самого HTML файла. Создадим index.html и подключим необходимые стили и библиотеки:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
CSS. Урок jQuery #3. Выпадающее меню
</title>
<link rel="stylesheet" href="style.css" type="text/css" />
Теперь перейдём к самому важному - созданию правил всплывания, а точнее выпадания нашего меню:
[code]<script type="text/javascript">
$(document).ready(function(){
$("ul.menu li a").mouseover(function() {
$(this).parent()
.find("ul.subnav").slideDown('fast').sho
w();
$(this).parent()
.hover(function() {
}, function(){
$(th
is).parent().find("ul.subnav").slideUp(
9;slow');
});
});
&n
bsp;$("ul.menu li ul li a").mouseover(function() {
$(this).parent()
.find("ul.subnav2").slideDown('fast').sh
ow();
$(this).parent()
.hover(function() {
}, function(){
$(th
is).parent().find("ul.subnav2").slideUp(
39;slow');
});
});
});
</script>
Как видно из кода скрипта, мы "привязываем" его к объектам ul с классом menu.
$("ul.menu li a").mouseover(function() {
Маркированный список нашего выпадающего меню должен иметь класс subnav,
$(this).parent().find("ul.subnav").slideDown
('fast').show();
$(this).parent()
.hover(function() {
}, function(){
$(th
is).parent().find("ul.subnav").slideUp(
9;slow');
а список меню 3-го уровня должен иметь класс subnav2. Такой подход позволяет создавать неограниченное количество уровней выпадающего меню. Также мы "попросили" скрипт раскрывать меню быстро, а собирать - медленно (slide).
Теперь пропишем в html само меню, сохраним и закроем index.html:
</head>
<body>
<ul class="menu">
<li&
#62;<a href="#">Главная</a></li>
<li&
#62;
&n
bsp; <a href="#">Документация</a>
&n
bsp; <ul class="subnav">
&n
bsp; <li><a href="#">jQuery</a></li>
&n
bsp; <li><a href="#">CSS</a></li>
&n
bsp; <li><a href="#">PHP >></a>
&n
bsp; <ul class="subnav2">
&n
bsp; <li><a href="#">Иконки</a></li>
&n
bsp; <li><a href="#">Шаблоны</a></li>
&n
bsp; <li><a href="#">Скрипты</a></li>
&n
bsp; &nbs
p;
<li><a href="#">Скрипты</a></li>
&n
bsp; <li><a href="#">Фоны</a></li>
&n
bsp; <li><a href="#">Другое...</a></li>
&n
bsp; &nbs
p; </ul>
&n
bsp; </li>
&n
bsp; <li><a href="#">AJAX</a></li>
&n
bsp; <li><a href="#">Другое...</a></li>
&n
bsp; </ul>
</li
>
<li&
#62;
&n
bsp; <a href="#">Скачать</a>
&n
bsp; <ul class="subnav">
&n
bsp; <li><a href="#">Иконки</a></li>
&n
bsp; <li><a href="#">Шаблоны</a></li>
&n
bsp; <li><a href="#">Скрипты</a></li>
&n
bsp; <li><a href="#">Фоны</a></li>
&n
bsp; <li><a href="#">Другое...</a></li>
&n
bsp; </ul>
</li
>
<li&
#62;<a href="#">Форум</a></li>
<li&
#62;<a href="#">Товары</a></li>
<li&
#62;<a href="#">Блог</a></li>
<li&
#62;<a href="#">О нас</a></li>
&n
bsp; </ul>
</body>
</html>
Не забудьте, что библиотека jQuery и файл CSS должны находиться в той же папке, что и index.html (такие пути мы прописали в коде). Создадим файл стилей (style.css):
Стили для всего меню (первый уровень):
ul.menu {
list-sty
le:none;
padding&
#58;0;
margin: 0;
font:12px Arial;
}
Стили для пунктов меню первого уровня:
ul.menu li {
float: left;
margin: 0;
padding: 0;
position: relative;
}
ul.menu li a{
padding: 12px 15px;
padding-bottom:11px;
color: #fff;
display: block;
text-decoration: none;
float: left;
font-weight:bold;
border-left: 1px solid #10577e;
border-right: 1px solid #4582a4;
backgrou
nd:#246d96;
}
ul.menu li a:hover{
background:#2b76a0;
}
Стили для выпадающего меню первого уровня:
ul.menu li ul.subnav {
list-style: none;
position: absolute;
left: 0; top: 38px;
background:#246d96;
margin: 0; padding: 0;
display: none;
float: left;
width: 171px;
border: 1px solid #10577e;
z-index:1;
}
ul.menu li ul.subnav li{
margin: 0; padding: 0;
border-top: 1px solid #4582a4;
border-bottom: 1px solid #10577e;
clear: both;
width: 171px;
background:#246d96;
}
html ul.menu li ul.subnav li a {
float: left;
width: 130px;
border:0;
background:#246d96;
padding-top:7px;
padding-bottom:7px;
padding-left: 25px;
}
html ul.menu li ul.subnav li a:hover {
background:#2b76a0;
}
И наконец, стили для выпадающего меню третьего уровня:
ul.menu li ul.subnav2 {
list-style: none;
position: absolute;
left: 150px; top: -2px;
background:#246d96;
margin: 0; padding: 0;
display: none;
float: left;
width: 171px;
border: 1px solid #10577e;
z-index:10;
}
Меню совместимо со всеми современными браузерами и его можно без проблем встроить практически в любой дизайн.
Совместимость: Internet Explorer 6 - 8; Mozilla Firefox 1.xx - 3.xx Opera 7.хх - 10.xx.
ДемоПо материалам сайта:
Российская школа CSS, автор статьи Григорий Загребельный.