将2个单独的菜单合并为一个菜单
我在页面上的不同位置有2个单独的菜单,如下所示:
当设备宽度小于768时,有没有一种方法可以在全宽样式切换下拉中组合两种导航?
所以他们会变成:
简单演示 :
var $LowerNavLI = $('.LowerNav li'), $TopNav = $('.TopNav'); function navResize(){ var mob = window.innerWidth<768; $LowerNavLI.appendTo((mob?".TopNav":".LowerNav")+' ul'); $TopNav[mob?"addClass":"removeClass"]('BothNav'); } navResize(); $(window).resize(navResize);
......这是一种残暴:
现场演示
var $LowerNavLI = $('.LowerNav li'); function navResize(){ var winW = window.innerWidth; var appended = false; if(winW < 768 && !appended ){ appended = true; $LowerNavLI.appendTo('.TopNav ul'); $('.TopNav').addClass('BothNav'); }else{ appended = false; $LowerNavLI.appendTo('.LowerNav ul'); $('.TopNav').removeClass('BothNav'); } } navResize(); $(window).resize(function(){ navResize(); });
使用jquery你可以尝试这个: –
小提琴
if($(window).width() < 768) { $('.TopNav ul').append($('.LowerNav ul li') .unwrap()).parent() .removeClass("TopNav") .addClass("BothNav"); $('.LowerNav').remove(); }
你可以在这里找几个方法,你可以只做一个顶部,一个底部和一个移动的导航,只是隐藏那些不应该看到的导航。
例如:
@media screen and (max-width: 767px) { .hideOnPhone { display:none; } } @media screen and (min-width: 768px) { .hideOnDesktop{ display:none; } }
或者,如果你喜欢这样做,服务器端使用像mobile_detect这样的PHP脚本http://code.google.com/p/php-mobile-detect/
用php的例子:
isMobile()) { ?> ...
...
...
已经使用jQuery发布了两个答案,这正是你想要的。 🙂