【问题标题】:jQuery-mobile sliding menu under header标题下的jQuery-mobile滑动菜单
【发布时间】:2013-06-10 15:52:48
【问题描述】:

刚进入jQuery mobile,看到了下example

是否可以让滑动菜单出现在标题下方? (图中红线处)

【问题讨论】:

标签: jquery jquery-mobile cordova


【解决方案1】:

通过更改top 位置和min-height 值来覆盖.ui-panel 样式

Demo

计算标题的.outerHeight() 和面板的.height()

var header = $('[data-role=header]').outerHeight(); 
var panel = $('.ui-panel').height();

给面板一个新的min-height,以免页面滚动

var panelheight = panel - header;

覆盖面板样式

$('.ui-panel').css({
    'top': header,
    'min-height': panelheight
});

【讨论】:

    【解决方案2】:

    还可以做得更好:

    这适用于以下情况:

    • 小组:data-display="push"
    • 面板:data-position="left"
    • 标题:data-position="fixed"

    并更改以下 css 样式:

    .ui-panel {
        top: 41px;
        height: calc(100% - 41px);
    }
    
    .ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push {
        -webkit-transform: translate3d(0,0,0);
        -moz-transform: translate3d(0,0,0);
        transform: translate3d(0,0,0);
    }
    

    第一个是将面板向下移动一点,使其移动到标题下方,而第二个使标题保持静止而不是移动到侧面。

    我猜想对于不同的 PanelHeader 设置,使用了不同的 CSS 类组合。你需要摆弄它。

    演示:http://jsbin.com/avuviy/2/

    【讨论】:

      【解决方案3】:

      除了 Omar 的出色回答外,您还可以将这些选项视为一种解决方案。

      • 您将listview 中的第一个元素用作关闭面板的按钮。 (是的,当您添加关闭按钮时,用户会喜欢它,请参阅question)。只需在第一个 li 元素中添加一个锚标记,就可以了。

        <li data-icon="false"><a href="#my-header" data-rel="close" data-icon="delete"></a></li>
        
      • 你可以让那个地方空着。 (是的,我知道,听起来有点蹩脚,但它不会妨碍您的设计 - 它的 un-obtrusive。只需在第一个 li 中添加一个空的 h1 标签:

        <li data-icon="false"><h1></h1></li>
        

      这是一个演示:http://jsbin.com/avuviy/1/edit

      【讨论】:

      • 嘿@Omar 我使用上面的代码它工作正常.. 但我想知道如何制作。此面板可滚动。我在面板中的内容超出了屏幕我想让它可滚动..请告诉我如何修复
      • @rachar_P 嗨,请发布一个问题并添加详细信息以便能够为您提供帮助:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      相关资源
      最近更新 更多