jQuery Mobile:隐藏方向更改时的页眉/页脚

时间:2012-06-18 15:04:26

标签: jquery jquery-mobile

我需要能够在调用设备方向事件时隐藏页眉/页脚(我还决定将其data-position =“fixed”属性更改为not-fixed)

我试过了:

$(window).bind('orientationchange resize', function(event){

            if(event.orientation == 'portrait') {
                //do something
            } 
            if (event.orientation == 'landscape') {
                $.mobile.fixedToolbars.show(false);
            }
    });

我也用过:

$.mobile.fixedToolbars.hide(true);

但似乎都没有做到这一点。这是否已从JQM 1.1中删除?

4 个答案:

答案 0 :(得分:6)

使用css媒体查询,根据设备方向隐藏元素非常简单:

/* portrait */
@media screen and (orientation:portrait) {
  /* portrait-specific styles */
}

/* landscape */
@media screen and (orientation:landscape) {
  /* landscape-specific styles */
}

这是工作示例:

http://jsfiddle.net/5TDg9/bwzdr/show/

(请务必使用您的移动设备打开此链接)


编辑:

我通过基于javascript的方向检测(添加到css)改进了上面的示例,理论上你可以在“case”之后传递任何东西:

$(window).bind( 'orientationchange', function(e){
    var orientation="portrait";
    if(window.orientation == -90 || window.orientation == 90) orientation = "landscape";

    $("#status").html(orientation);  

    switch(orientation){
      case 'portrait':
        // alert('portrait');
        $.mobile.fixedToolbars.setTouchToggleEnabled(true);
        break;
      case 'landscape':
        // alert('landscape');        
        $.mobile.fixedToolbars.setTouchToggleEnabled(false);
        break;
      default:
        break;
    };        
});

示例here

答案 1 :(得分:0)

在JQM 1.1中,函数的名称全部为小写。不再支持上一个方法。

显示:

$("[data-position='fixed']").fixedtoolbar('show');

隐藏:

$("[data-position='fixed']").fixedtoolbar('hide');

<强> More info on the docs.

答案 2 :(得分:0)

根据页脚的名称,您只需在方向检测功能中执行此操作即可。

yourfooter.hide();

与将div设置为style =“display:none;”

相同

答案 3 :(得分:0)

您可以使用以下内容:

$(window).bind('orientationchange', function(event) {
    if (event.orientation == 'landscape' ) {
        $.mobile.fixedToolbars.show(false);
    } else {
        $.mobile.fixedToolbars.show(true);
    }
});