По многочисленным просьбам трудящихся продолжена тема посвященная
созданию разного вида и типа меню. Сегодня пойдет речь о разновидности
горизонтального меню. Посмотреть на него можно только на сайте,
поскольку при пересылке по почте теряются некоторые возможности.
Статусная строка недаром существует в браузере, она помогает получать дополнительную
информацию о ссылках и других объектах веб-страницы. Нечто подобное можно создать
и для горизонтального меню, чтобы при наведении на ссылку выводилось ее расширенное
описание. Конечно, существуют всплывающие подсказки, которые устанавливаются
с помощью параметра title тега A,
но они отображаются с задержкой, к тому же видом таких подсказок нельзя управлять.
В статье на сайте продемонстрировано горизонтальное меню, в котором при наведении курсора
мыши на ссылку, отображается аннотация к ней.
Подобное меню имеет ряд преимуществ:
названия ссылок можно сокращать, зато более подробно давать их описание;
текст описания может занимать как одну, так и несколько строк;
видом аннотации можно управлять с помощью стилей.
Для создания горизонтального меню с аннотацией воспользуемся методом innerHTML,
который позволяет динамически изменять текст определенных элементов. Вначале
потребуется создать структуру тегов DIV, как показано
в примере 1.
Пример 1. Создание меню
<html>
<head>
<style type="text/css">
#menu {
background: #fc0; /* Цвет фона меню */
padding: 5px; /* Поля вокруг текста */
border: 1px solid black /* Параметры рамки вокруг меню
*/
}
#description {
font-size: 90%; /* Размер шрифта */
height: 30px; /* Высота слоя с описанием */
padding: 5px /* Поля вокруг текста описания */
}
Указывать высоту слоя description через параметр
height нужно только в том случае, когда описание
для разного меню различается числом строк. Дело в том, что изменение числа строк
может привести к сдвигу содержимого, находящегося ниже меню. Чтобы этого не
произошло и требуется устанавливать высоту.
Создаем теперь функцию, которая будет менять содержимое слоя description
(пример 2).
Пример 2. Использование метода innerHTML
<script type="text/javascript">
function statMenu(text) {
document.getElementById('description').innerHTML = text;
}
</script>
В качестве аргумента функции statMenu используется
текстовая строка, которая служит описанием к текущему пункту меню. Допускается
в тексте использовать любые теги HTML, например, для выделения отдельных слов
или создания переносов строк.
Теперь остается к каждому тегу A находящемуся в меню
добавить события onMouseOver и onMouseOut
и «навесить» на них нашу функцию statMenu
(пример 3).
Пример 3. Окончательный код для создания меню с аннотацией
Для добавления аннотации применяется событие onMouseOver,
оно отвечает за наведение курсора мыши на пункт меню. Чтобы убрать текст используется
событие onMouseOver, которое вызывает функцию statMenu
с пустой строкой в качестве аргумента.