Главная страница_Журнал IT-технологий
Воскресенье, 19.05.2024, 13:09 Приветствую Вас Гость | RSS | Вход | Регистрация
.
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум - Журнал IT-технологий » Программирование » Web-программирование » Выпадающее меню (Выпадающее меню с помощью CSS и jQuery)
Выпадающее меню
ShumikДата: Суббота, 03.04.2010, 21:43 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 56
Репутация: 10
Статус: Offline


Сегодня, я расскажу Вам об одном из самых простых способов создания анимированного выпадающего меню с помощью библиотеки 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, автор статьи Григорий Загребельный.
 
Форум - Журнал IT-технологий » Программирование » Web-программирование » Выпадающее меню (Выпадающее меню с помощью CSS и jQuery)
  • Страница 1 из 1
  • 1
Поиск:


Статистика Форума
Популярные темы Новые темы Лучшие пользователи Новые пользователи

Жидкостное охлаждение...

(1)

GPS

(0)

GPS-приёмник

(0)

Цифровой зеркальный ф...

(0)

Форматы видео

(0)

LiveView (Live view, ...

(0)

Поколения мобильной т...

(0)

Акселерометр в телефо...

(0)

Переход между страниц...

(0)

Создание градиентного...

(0)

Жидкостное охлаждение...

(1)

GPS

(0)

GPS-приёмник

(0)

Цифровой зеркальный ф...

(0)

Форматы видео

(0)

LiveView (Live view, ...

(0)

Поколения мобильной т...

(0)

Акселерометр в телефо...

(0)

Переход между страниц...

(0)

Создание градиентного...

(0)

Shumik

Sidorov

Rekrut

olegfilimonow

lexajakovlev

gari

tubaretka2012

klaniklani

shereman2012

maxycheks

Sidorov

olegfilimonow

lexajakovlev

gari

tubaretka2012

klaniklani

shereman2012

maxycheks

intelligencebusiness

tank5454



Copyright Журнал IT-технологий © 2024

При наполнении сайта использована информация из открытых источников. Администрация сайта не несет ответственности за недостоверную и заведомо ложную информацию размещенную на страницах сайта. Если Вы считаете, что какой-либо из материалов нарушает Ваши права, свяжитесь с Администрацией. При использовании информации опубликованной на нашем сайте, ссылка обязательна.