桌面上的Sidr.js菜单禁用

时间:2015-04-17 12:40:44

标签: javascript jquery sidr

我正在使用www.berriart.com/sidr/ jQuery脚本从我的HTML菜单创建侧面菜单。 它工作得很好,但我希望在大于480px的分辨率下显示“标准”菜单,在分辨率低于480px的情况下显示侧面菜单。

我用以下方式触发它:

<script>
$(document).ready(function() {
  $('#simple-menu').sidr();
});
</script>

我想知道如何限制此脚本仅在屏幕低于480px时运行?

对不起,JS新手在这里:))

4 个答案:

答案 0 :(得分:1)

您可以使用

  

$(窗口).WIDTH()   $(窗口).height()

获取屏幕的宽度和高度并相应地使用它。

<script>
$(document).ready(function() {
  var width = $(window).width();
   if (width<=480) {
     $('#simple-menu').sidr();
   }
  else
  {
     // you could call the other version of the slider.
   }
});
</script>

答案 1 :(得分:1)

如果您想要一个适用于页面加载和页面调整大小或移动方向更改的解决方案,则其他解决方案仅适用于页面加载。使用这个。

var state = 'undefined';
$('#responsive-menu-button').sidr({
  name: 'sidr-main',
  source: '#navigation'
});

$('#responsive-menu-button').off('click').click(function(e){
  e.preventDefault();
  if(state == 'close'){
    $.sidr('open','sidr-main', function(){ state = 'open'; });
  } else {
    $.sidr('close','sidr-main', function(){ state = 'close'; });
  }
});

var deviceWidth = $(window).width();
var breakWidth = 480;
if(state == 'undefined'){
  if(deviceWidth <= breakWidth) {
    state = 'close';
  } else {
    setTimeout(function(){
      $.sidr('open','sidr-main', function(){ state = 'open'; });
    }, 100);
  }
}

$(window).off('resize').bind('resize', function () {
    deviceWidth = $(window).width();
    if(deviceWidth > breakWidth && state == 'close') {
      $.sidr('open','sidr-main', function(){ state = 'open'; });
    }
    if(deviceWidth <= breakWidth && state == 'open') {
      $.sidr('close','sidr-main', function(){ state = 'close'; });
    }
});

答案 2 :(得分:0)

请参阅Sidr的文档/示例页面中的以下示例:http://berriart.com/sidr/#documentation,标题为“响应菜单”。它利用媒体查询仅在屏幕大小低于767px时显示移动标题,否则不显示。您可以修改此示例以获得所需的效果。

<style>
#mobile-header {
    display: none;
}
@media only screen and (max-width: 767px){
    #mobile-header {
        display: block;
    }

    #navigation {
        display: none;
    }
}
</style>

<div id="mobile-header">
    <a id="responsive-menu-button" href="#sidr-main">Menu</a>
</div>

<div id="navigation">
    <nav class="nav">
        <ul>
            <li><a href="#download">Download</a></li>
            <li><a href="#getstarted">Get started</a></li>
            <li><a href="#usage">Demos &amp; Usage</a></li>
            <li><a href="#documentation">Documentation</a></li>
            <li><a href="#themes">Themes</a></li>
            <li><a href="#support">Support</a></li>
        </ul>
    </nav>
</div>

<script>
    $('#responsive-menu-button').sidr({
      name: 'sidr-main',
      source: '#navigation'
    });
</script>

答案 3 :(得分:0)

请检查我使用的CSS代码段。

最初,对于宽度> 768px,#mobile-header设置为display:none

否则,#mobile-header将为display:block

<style>
#mobile-header { display: none; }
@media only screen and (max-width: 768px){
#mobile-header { display: block;}
#nav-wrapper { display: none; }
}
</style>