Если вы просто хотите отображать и скрывать раскрывающееся меню при наведении курсора мыши, вам не нужен JavaScript. Вы можете сделать это, просто используя CSS-свойство display и псевдокласс :hover.

В следующем примере показано, как реализовать простое раскрывающееся меню с помощью CSS.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Show Hide Dropdown Using CSS</title>
<style>
    ul{
        padding: 0;
        list-style: none;
        background: #f2f2f2;
    }
    ul li{
        display: inline-block;
        position: relative;
        line-height: 21px;
        text-align: left;
    }
    ul li a{
        display: block;
        padding: 8px 25px;
        color: #333;
        text-decoration: none;
    }
    ul li a:hover{
        color: #fff;
        background: #939393;
    }
    ul li ul.dropdown{
        min-width: 100%; /* Устанавливаем ширину раскрывающегося списка */
        background: #f2f2f2;
        display: none;
        position: absolute;
        z-index: 999;
        left: 0;
    }
    ul li:hover ul.dropdown{
        display: block; /* Отображаем раскрывающийся список */
    }
    ul li ul.dropdown li{
        display: block;
    }
</style>
</head>
<body>
    <ul>
        <li><a href="#">Главная</a></li>
        <li><a href="#">О нас</a></li>
        <li>
            <a href="#">Каталог &#9662;</a>
            <ul class="dropdown">
                <li><a href="#">Ноутбуки</a></li>
                <li><a href="#">Мониторы</a></li>
                <li><a href="#">Принтеры</a></li>
            </ul>
        </li>
        <li><a href="#">Контакты</a></li>
    </ul>
</body>
</html>

И с семантической и практической точки зрения это не самое удачное решение.

Во-первых, пользователь захочет кликнуть по ссылке Каталог и вам нужно запретить переход по ней используя event.preventDefault();. А во вторых пользователи, зашедшие с мобильного устройства не смогут воспользоваться функцией наведения и, как следствие, у них не откроется дополнительное меню.

Лучший выход в этой ситуации — добавить для нужного элемента <li> дополнительный элемент, например <span class="caret"> и с помощью JavaScript добавить поведение клика и наведения для этого элемента.

Читайте также

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.