响应导航Javascript

响应导航Javascript,javascript,jquery,responsive-design,navigation,Javascript,Jquery,Responsive Design,Navigation,我想做一个反应灵敏的导航。我正在使用一些jquery,但我对javascript不太了解。我想切换发生时,窗口是一个特定的宽度(如1050px)这是脚本 function adaptMenu() { /* toggle menu on resize */ $('nav').each(function() { var $width = $(this).css('max-width'); $width = $width.replace('px',

我想做一个反应灵敏的导航。我正在使用一些jquery,但我对javascript不太了解。我想切换发生时,窗口是一个特定的宽度(如1050px)这是脚本

function adaptMenu() {

    /*  toggle menu on resize */

    $('nav').each(function() {
        var $width = $(this).css('max-width');
        $width = $width.replace('px', '');
        if ($(this).parent().width() < $width * 1.05) {
            $(this).children('.nav-main-list').hide(0);
            $(this).children('.nav-toggled').show(0);
        } else {
            $(this).children('.nav-main-list').show(0);
            $(this).children('.nav-toggled').hide(0);
        }
    });

}
功能自适应菜单(){
/*在调整大小时切换菜单*/
$('nav')。每个(函数(){
var$width=$(this.css('max-width');
$width=$width.replace('px','');
if($(this).parent().width()<$width*1.05){
$(this).children('.nav主列表').hide(0);
$(this).children('.nav toggled').show(0);
}否则{
$(this).children('.nav main list').show(0);
$(this).children('.nav toggled').hide(0);
}
});
}

您可以通过修复给定的javascript来解决这个问题,但javascript在处理响应性设计方面效率低下。CSS引擎采用C++编写,运行速度快,浏览器大小自动调整。 更好地利用 下面的代码片段与javascript相同,但使用纯CSS

<style>
@media (max-width: 1049px) {
  nav .nav-main-list {
    display: none;  /* hide .nav-main-list when browser windows width < 1050px */
  }
  nav .nav-toggle {
    display: initial;  /* show */
  }
}
@media (min-width: 1050px) {
  nav .nav-main-list {
    display: initial;  /* show .nav-main-list when browser windows width > 1050px */
  }
  nav .nav-toggle {
    display: none;     /* hide */ 
  }
}    
</style>

@介质(最大宽度:1049px){
导航主列表{
显示:无;/*浏览器窗口宽度<1050px时隐藏.nav主列表*/
}
导航。导航开关{
显示:初始;/*显示*/
}
}
@介质(最小宽度:1050px){
导航主列表{
显示:初始;/*浏览器窗口宽度>1050px时显示.nav主列表*/
}
导航。导航开关{
显示:无;/*隐藏*/
}
}    
编辑:
正如@Roko所评论的,媒体查询在IE8和更早版本中不起作用。如果您需要该浏览器的支持,这可能会有所帮助。

您可以在不使用javascript的情况下使用来实现这一点。无关:以$开头命名变量是否会对PHP产生影响?或者jQuery?IE8(仍处于野生状态)不会对您的决定感到满意;)将JS放入