JavaScript Library · No deps · ~3kb
aimmenu.js
# Живая демонстрация
наведите курсорВедите курсор по диагонали к подменю — оно останется открытым.
Нажмите Esc, чтобы закрыть активное подменю.
# Скачать
Сам скрипт
Чистая библиотека aimmenu.js без демо-кода. Подключите и вызовите aimmenu(menu, opts).
Простая HTML-версия
Минимальные стили — голый рабочий пример. Удобно как стартовая точка для своей вёрстки.
↓ aimmenu-simple.htmlУлучшенная версия
Стильный самодостаточный пример с анимацией и оформлением в духе этого сайта.
↓ aimmenu-enhanced.htmlHTML-примеры подключают aimmenu.js из той же папки — кладите файлы рядом.
# Использование
Подключите скрипт и инициализируйте на контейнере меню. Колбэки activate и deactivate отвечают за показ и скрытие подменю:
<script src="aimmenu.js"></script>
<script>
const menu = document.querySelector('.aimmenu');
aimmenu(menu, {
submenuDirection: 'right', // right | left | below | above
tolerance: 75, // запас по краям меню, px
delay: 300, // задержка закрытия, мс
exitMenu: () => true,
activate(row) { row.querySelector('.is-sub').style.display = 'block'; },
deactivate(row) { row.querySelector('.is-sub').style.display = 'none'; },
});
</script>