导航栏位于标题中时,用于jQuery Mobile选项卡内容的自适应垂直滚动条

时间:2014-06-22 03:33:03

标签: jquery jquery-mobile overflow jquery-mobile-navbar jquery-mobile-table

在某些jQuery移动设备标签中,我的内容需要滚动条。

控制它们的导航栏位于标题中,如this fiddle

我尝试在标签内容的所有级别上设置height: 100%; overflow: auto;,但滚动条仍然会作为整体应用于页面。

如何将溢出的滚动条自适应地应用于选项卡式内容?

jsFiddle

HTML

<div data-role="page" id="mainPage">
    <div data-role="tabs" id="tabs">
        <div data-role="header" style="overflow:hidden;">
            <h1>I'm a header</h1>
            <a href="#" data-icon="gear" class="ui-btn-right">Options</a>
            <div data-role="navbar">
                <ul>
                    <li><a href="#one" class="ui-btn-active">One</a></li>
                    <li><a href="#two">Two</a></li>
                    <li><a href="#">Three</a></li>
                </ul>
            </div>
        </div>
        <div id="one" class="ui-body-d ui-content tabContent">
            <h1>First tab contents</h1>
        </div>
        <div id="two">
            <ul data-role="listview" data-inset="true">
                <li><a href="#">Acura</a></li>
                <li><a href="#">Audi</a></li>
                <li><a href="#">BMW</a></li>
                <li><a href="#">Cadillac</a></li>
                <li><a href="#">Ferrari</a></li>
            </ul>
        </div>
    </div>
</div>

JS

$(document).ready(function() {
    var $one = $('#one')
    for(var i=0; i<1000; i++){
        $one.append('<br/>content')
    }

})

CSS

body{
    overflow:hidden;
}
.tabContent{
    height:100%;
    overflow:auto;
}

2 个答案:

答案 0 :(得分:1)

你需要这样的东西吗? http://jsfiddle.net/VjYq9/3/

#one{
    height:330px;
    overflow-y:scroll;
}

更新:你去了http://jsfiddle.net/VjYq9/5/

$one.height($(window).height()-120); //note that -120 must be the size of the header, so it is the window size minus the size of the header so "#one" would fit the screen!

答案 1 :(得分:0)

只有CSS解决方案,@ user1382306,请参见下文:

.max-height-occupied {
    position: absolute;
    top: 88px; /*your header height*/
    right: 0;
    bottom: 44px; /*your footer height */
    left: 0;
}

目标内容div的内容如下:

<div data-role="content" data-theme="b" class="max-height-occupied">