Вертикальное многоуровневое меню для сайта Вертикальное многоуровневое меню для сайта



 

Вам необходимо создать креативное многоуровневое меню, кроме этого, чтобы оно было адаптивным, и было стилизованными эффектами. В данном уроке мы рассмотрим как все это можно реализовать. Главной идеей данной навигации являются пару вещей, первое из них, это экономия ценного места на странице, второе, это внедрение подменю и эффектного появления при нажатии. Каждое выпадающее меню будет относительное, то есть родительский элемент будет исчезать при вызове следующего подпункта.

 

ДЕМО
ИСХОДНИКИ

 

Делаться это будет с помощью анимационных эффектов, которые мы выделим в отдельные классы. В итоге у нас получится плавающее меню, с достаточно простыми но оригинальными эффектами. И так, приступим.

Шаг 1. HTML

Первым делом нам необходимо создать простую разметку, мы будем использовать неупорядоченный список, что позволит создавать произвольное количество выпадающих списков:

<div id="dl-menu" class="dl-menuwrapper">
 <button>Открыть меню</button>
 <ul class="dl-menu">
 <li>
 <a href="#">Пункт </a>
 <ul class="dl-submenu">
 <li class="dl-back"><a href="#">back</a></li>
 <li><a href="#">Подпункт 1</a></li>
 <li><a href="#">Подпункт 2</a></li>
 <li><a href="#">Подпункт 3</a></li>
 <li>
 <a href="#">Sub-Item 4</a>
 <ul class="dl-submenu">
 <li class="dl-back"><a href="#">back</a></li>
 <li><a href="#">Под подпунктком 1</a></li>
 <li><a href="#">Под подпунктком 2</a></li>
 <li><a href="#">Под подпунктком 3</a></li>
 </ul>
 </li>
 <li><!-- ... --></li>
 <!-- ... -->
 </ul>
 </li>
 <li><!-- ... --></li>
 <li><!-- ... --></li>
 <!-- ... -->
 </ul>
</div>

Количество подпунктов вы можете добавить самостоятельно в необходимом количестве.

Шаг 2. CSS

У нас уже есть заготовленная анимация, нам только необходимо вставить необходимые классы:

.dl-menu.dl-animate-out-1 {
 animation: MenuAnimOut1 0.4s linear forwards;
}

@keyframes MenuAnimOut1 {
 50% {
 transform: translateZ(-250px) rotateY(30deg);
 }
 75% {
 transform: translateZ(-372.5px) rotateY(15deg);
 opacity: .5;
 }
 100% {
 transform: translateZ(-500px) rotateY(0deg);
 opacity: 0;
 }
}

.dl-menu.dl-animate-in-1 {
 animation: MenuAnimIn1 0.3s linear forwards;
}

@keyframes MenuAnimIn1 {
 0% {
 transform: translateZ(-500px) rotateY(0deg);
 opacity: 0;
 }
 20% {
 transform: translateZ(-250px) rotateY(30deg);
 opacity: 0.5;
 }
 100% {
 transform: translateZ(0px) rotateY(0deg);
 opacity: 1;
 }
}

Шаг 3. jQuery

Мы будем использовать плагин dlmenu. js для корректного отображения и функциональности меню, для этого нам необходимо его инициализировать:

$( '#dl-menu' ).dlmenu({
 animationClasses : { in : 'animation-class-name', out : 'animation-class-name' }
});

Вот и все. Готово!

Материал взят из зарубежного источника tympanus.net/codrops/2013/04/19/responsive-multi-level-menu и представлен исключительно в ознакомительных целях.


Top

🔖 Выбор по тегам ×

💌 Написать сообщение ×

Все поля обязательны для заполнения!