我正在为响应式网站构建一个菜单 - 我的查询是人们认为显示/隐藏菜单的最佳解决方案。
我已在此jsfiddle设置菜单 - http://jsfiddle.net/paul_dance/5z7rvvn4/2/
菜单隐藏在768px并显示一个按钮 - 我正在考虑添加一个简单的js脚本
$('.menu-btn).click(function(){
$('nav ul').slidetoggle();
});
或类似的..
在点击时切换菜单 - 但我担心的是如果用户再次隐藏它,然后将屏幕扩展到768以上,菜单将保持隐藏状态,并且没有按钮可以重新显示。
是否有更好的跨浏览器/设备解决方案?还是仅限CSS的解决方案?这也需要在IE8上运行。
答案 0 :(得分:1)
而不是使用slideToggle,只需在open
元素上切换#nav
类。
然后在“移动”大小的媒体查询中,让#nav.open
显示菜单(我通过将#nav.open > ul
设置为display:block;
来完成此操作。)
示例:
http://jsfiddle.net/rally25rs/5z7rvvn4/3/
示例不是动画,但您可以在高度上添加CSS3过渡,而不是仅更改元素的display:none;
。 CSS3过渡在IE 8或9中不起作用,菜单只会出现,但没有移动设备运行IE8或9,所以这真的不应该是一个问题。
答案 1 :(得分:1)