Привет, Я создаю меню навигации, используя модуль загрузки «свернуть» javascript.
Высота меню будет варьироваться в зависимости от того, сколько элементов меню <div class = "main-navigation-menu" > <button type = "button" class = "main-navigation-menu__button" data-toggle = "collapse" data-target = "# Распад-основной нав" ария-haspopup = "истина" Aria вспененного = "ложный" > <промежуток класс = "значок-бар бар-один" > </ SPAN> <пролет класс = «значок-бар бар -two " > </ span> <span class = «icon-bar bar-three» > </ span> </ button> <div class = "Свернуть main-navigation-menu__dropdown main-navigation-dropdown" id = "collapse-main-nav" > <ul class = "main -Навигационный-dropdown__menu " > <литий класс = "главная навигация-dropdown__item" > <a HREF = "#" класс = "main-navigation-dropdown__link"> ссылка 1 </a> <промежуток класс = " основная навигационно dropdown__toggle-expand js-link-toggle-main-sub-menu " > <span class = " glyphicon glyphicon-chevron-down main-navigation-dropdown__chevron js-toggle-main-menu-item " > </ span> </ span > <ul class = "main-navigation-dropdown__submenu js-toggle-display-sub-menu" > <li class = "main-navigation-dropdown__submenu-item" > <a href = "#" class = "main-navigation- dropdown__submenu-ссылка " > пункт подменю 1 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link"> пункт 2 подменю </a> </ li> <li class = "main-navigation-dropdown__submenu-item" > <a href = "#" class = "main-navigation-dropdown__s ubmenu-ссылка " > пункт подменю 3 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link"> подпункт меню 4 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "main-navigation-dropdown__submenu-link "> "#" класс пункт подменю 5 < / а> </ LI> </ UL> </ литий> <литий класс = "главной навигации-dropdown__item" > <a HREF = "#" класс = "main-navigation-dropdown__link"> ссылка 2 </a> <span class = "main-navigation-dropdown__toggle-expand js-link-toggle-main-sub-menu" > <span class = "glyphicon glyphicon-chevron-down main-navigation-dropdown__chevron" > </ span> </ span > <ul class = "main-navigation-dropdown__submenu js-toggle-display-sub-menu" > <li class = "main-navigation-dropdown__submenu-item" > <a href = "#" class = "main-navigation- dropdown__submenu-ссылка " > пункт подменю 1 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link"> подпункт меню 2 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "main-navigation-dropdown__submenu-link "> "#" класс пункт подменю 3 < / а> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link "> пункт подменю 4 </a> </ li> <li class = "main-navigation-dropdown__submenu-item" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link "> пункт подменю 5 </a> </ li> </ UL> </ li> <литий класс = "главной навигации-dropdown__item" > <a HREF = "#" класс = "main-navigation-dropdown__link"> ссылка 3 </a> <SPAN класс = "главной навигационной dropdown__toggle-расширения JS-канального тумблер главного подменю" > < span class = "glyphicon glyphicon-chevron-down main-navigation-dropdown__chevron" > </ span> </ span> <ul class = "main-navigation-dropdown__submenu js-toggle-display-sub-menu" > <li class = "главной навигационной dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link "> пункт подменю 1 </a> </ li> <литий класс = " главный-навигационно dropdown__submenu-пункт " > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link"> пункт подменю 2 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link "> пункт подменю 3 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <а HREF = " # " cl ass = "main-navigation-dropdown__submenu-link" > пункт 4 подменю </a> </ li> <li class = "main-navigation-dropdown__submenu-item" > <a href = "#" class = "main- navigation-dropdown__submenu-link " > подменю 5 </a> </ li> </ ul> </ li> <li class = " main-navigation-dropdown__item " > <a href = " # " class = " main -navigation-dropdown__link " > ссылка 4 </a> <span class = " main-navigation-dropdown__toggle-expand js-link-toggle-main-sub-menu " > <span class = " glyphicon glyphicon-chevron-down main- Навигационный-dropdown__chevron " > </ span> </ span> <ul class = " main-navigation-dropdown__submenu js-toggle-display-sub-menu " > <li class = " main-navigation-dropdown__submenu-item " > <a href = "#" class = "main-navigation-dropdown__submenu-link" > элемент подменю 1 </a> </ li> <li class = "main-navigation-dropdown__submenu-item" > <a href = "#" class = "main-navigation-dropdown__submenu-link" > пункт 2 подменю </a> </ li> <li class = "main-navigation-dropdown__submenu-item" > <a href = "#" class = "main- навигационная gation-dropdown__submenu-link " > подменю 3 </a> </ li> <li class = " main-navigation-dropdown__submenu-item " > <a href = " # " class = " main-navigation-dropdown__submenu-link " > подпункт меню 4 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = класс = "main-navigation-dropdown__submenu-link "#""> пункт подменю 5 </a> </ LI> </ UL> </ литий> <литий класс = "главной навигации-dropdown__item" > <a HREF = "#" класс = "main-navigation-dropdown__link"> ссылка 5 </ a> <span class = "main-navigation-dropdown__toggle-expand js-link-toggle-main-sub-menu" > <span class = "glyphicon glyphicon-chevron-down main-navigation-dropdown__chevron" > </ span> < / span> <ul class = "main-navigation-dropdown__submenu js-toggle-display-sub-menu" > <li class = "main-navigation-dropdown__submenu-item" > <a href = "#" class = "main- navigation-dropdown__submenu-link " > подменю 1 </a> </ li> <li class = " main-navigation-dropdown__submenu-item " > <a href = " # " class = " main-navigation-dropdown_ _submenu-ссылка " > пункт подменю 2 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link"> подпункт меню 3 </a> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "main-navigation-dropdown__submenu-link "> "#" класс пункт подменю 4 < / а> </ li> <литий класс = "главной навигации-dropdown__submenu-пункт" > <a HREF = "#" класс = "main-navigation-dropdown__submenu-link "> пункт подменю 5 </a> </ li> </ ul> </ li> </ ul> </ div> </ li> </ div>, поэтому я не хочу устанавливать фиксированную высоту.
If possible i want to keep the slide down collapse effect but, i want to resolve the fact that the menu appears to over slide the height of its contents and then jump up to the correct height. Please click on the burger menu to see the issue that i am experiencing.
https://codepen.io/angusgrant/pen/djoXJj
html:
@link-color: #333;
.main-navigation-menu {
margin-top: 7px;
margin-left: 5px;
position: relative;
.main-navigation-menu__button {
padding: 2px 8px;
border: none;
display: block;
background-color: #fff;
&:focus {
outline: none;
}
span.icon-bar {
background: @link-color;
margin: 1px 0 7px;
display: block;
width: 28px;
height: 2px;
border-radius: 1px;
}
}
.main-navigation-menu__button[aria-expanded="true"] {
span.icon-bar {
background: @link-color;
width: 28px;
margin: 5px 0;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
-ms-transition: all .3s ease;
transition: all .3s ease;
}
span.icon-bar.bar-one {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
position: relative;
top: 6px;
}
span.icon-bar.bar-two {
display: none;
}
span.icon-bar.bar-three {
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg);
position: relative;
}
}
.main-navigation-menu__dropdown {
position: absolute;
top:34px;
left:0;
}
}
.main-navigation-dropdown {
min-width: 450px;
max-width: 600px;
width:auto;
@media (max-width: 600px) {
min-width: none;
max-width: none;
width: 100vw;
}
padding: 20px;
-webkit-box-shadow: 0px 0px 7px 0px rgba(51,51,51,1);
-moz-box-shadow: 0px 0px 7px 0px rgba(51,51,51,1);
box-shadow: 0px
jquery,html,css3,twitter-bootstrap-3,