jquery - 将 2 个单独的菜单合并为一个菜单

标签 jquery html css responsive-design

我在页面的不同位置有 2 个单独的菜单,如下所示:

<div class="TopNav">
<ul>
    <li><a href="">one</a></li>
    <li><a href="">two</a></li>
    <li><a href="">three</a></li>
</ul>
</div>

<div class="LowerNav">
 <ul>
  <li><a href="">Item 1</a></li>
  <li><a href="">Item 2</a></li>  
  <li><a href="">Item 3</a></li>
 </ul>
</div>

当设备宽度小于 768 时,有没有一种方法可以将两个导航组合成一个全宽样式的切换下拉菜单?

所以他们会变成:

<div class="BothNav">
 <ul>
  <li><a href="">one</a></li>
  <li><a href="">two</a></li>
  <li><a href="">three</a></li>
  <li><a href="">Item 1</a></li>
  <li><a href="">Item 2</a></li>  
  <li><a href="">Item 3</a></li>
 </ul>
</div>

最佳答案

只需 LIVE DEMO :

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); 

...这是一种残忍的行为:

LIVE DEMO

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 - 将 2 个单独的菜单合并为一个菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269027/

相关文章:

javascript - 将处理程序从 jquery 元素附加到另一个元素

jQuery .offset 设置y值

javascript - 是否可以将 Testacular 用于非 AngularJS 应用程序以进行端到端测试

php - MySQL如何正确处理包含代码/跨站点脚本的行?

javascript - 使用外部 JavaScript 文件更改 div 上的显示

css - 网页裁剪界面

php - 如何在提交按钮中显示不同颜色的文本

jquery - 如何在手机上全屏播放视频

javascript - 在 Kineticjs 中删除数组中的组

html - 元素不在容器内 - 特别是 chrome