我正在做响应式设计,其中菜单被宽度为< = 768px的菜单按钮替换;调整屏幕时菜单高度不会重置
目前我使用jQuery来改变菜单的高度,当我点击菜单按钮。
jQuery将style="height: 152px;"
添加到nav
元素,CSS3 transition: height 0.35s ease 0s;
确保它滑落下来。
这工作正常,直到我调整窗口,而菜单是可见的。当width > 768px
时,菜单项相互浮动(所以它们在一行而不是在彼此之下)。
问题是菜单高度仍然是152px高,并导致菜单下的空白空间。
我试着看看是否有一个侦听器可以检测菜单按钮是否隐藏(display: none;
),这样我就可以删除style
,但是我还没有发现任何东西。
有没有简单的解决方案,我的问题?任何帮助赞赏。
// CSS
.nav-collapse {
overflow: hidden;
transition: height 0.35s ease 0s;
}
@media (max-width: 768px){
.collapse { height:0; }
}
// JS
$('.btn-navbar').click(function(){
var nav = $('.nav-collapse');
if($(nav).hasClass('collapse')){
$(nav).height($(nav).find('ul').height());
$(nav).removeClass('collapse');
} else {
$(nav).attr('style','');
$(nav).addClass('collapse');
}
});
// HTML
<nav class="nav-collapse collapse">
<ul>
<li> menu items </li>
</ul>
</nav>
你应该尝试复制在拨弄你的问题。有时,我们很难仅根据您的描述来想象您的问题。 – Terry
小提琴添加:) – Steven