Jquery-移动滑动菜单面板+滚动

时间:2013-09-11 10:54:35

标签: jquery jquery-mobile cordova

我是jQuery Mobile的新手。我需要在我的应用程序中添加Facebook滑动面板功能。

我使用了sliding menu panel,它工作正常,但我在菜单面板中的内容超出了窗口大小,我想让它可滚动。

请告诉我如何解决它。

代码参考

<!DOCTYPE html>
<html>
<head>
<title>FB Style Menu</title>
<meta id="extViewportMeta" name="viewport"content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<style>
    .ui-panel-inner {
    overflow: hidden !important;
    padding: 0px;
}
.ui-controlgroup {
    margin: 0;
}
#header {
    height: 54px;
}
#bars-button {
    margin: 7px;
}
.panel-content {
    overflow-y: scroll !important
}
</style>

<script>
    $(document).on('pageshow', '#home', function(event) {
        alert("init");
    init(); //$.mobile.hidePageLoadingMsg();    
    });    
    function init() {    
        var header = $('[data-role=header]').outerHeight();
        var panel = $('.ui-panel').height();
        var panelheight = panel - header;
        $('.ui-panel').css({
            'top' : header,
            'min-height' : panelheight
        });    
    }
</script>
</head>
<body>
<div data-role="page" id="home" data-theme="b">
    <div data-role="panel" id="navpanel" data-theme="a" data-display="overlay" data-position="right">
        <div class="panel-content">
            <div data-role="controlgroup" data-corners="false"> <a href="#" data-role="button">Business</a>
                <a href="#" data-role="button">Numbers</a>
                <a href="#" data-role="button">Money</a>
                <a href="#" data-role="button">People</a>
                <a href="#" data-role="button">Business</a>
                <a href="#" data-role="button">Numbers</a>
                <a href="#" data-role="button">Money</a>
                <a href="#" data-role="button">People</a>
                <a href="#" data-role="button">Business</a>
                <a href="#" data-role="button">Numbers</a>
                <a href="#" data-role="button">Money</a>
                <a href="#" data-role="button">People</a>
            </div>
        </div>
    </div>
<div id="header" data-role="header" data-theme="b"> 
    <a id="bars-button" data-icon="bars" class="ui-btn-right" style="margin-top:10px;" href="#navpanel">Menu</a>


<!-- /About -->
</div>
</body>
</html>

2 个答案:

答案 0 :(得分:4)

在我看来,jQuery Mobile的幻灯片(FB之类)还没有准备好。我在固定导航栏和固定页脚方面遇到了一些问题。这就是为什么我开始寻找更好的替代方案来解决这个问题。

以下是我找到的一些链接:

我知道它不能解决你的问题,但它可能有助于你的未来发展:)

答案 1 :(得分:2)

截至目前,我正在将overflow-x: scroll.ui-panel-inner { overflow-x: hidden }作为解决方案 除了少数低分辨率设备外,大多数设备都能正常工作 请参阅fiddle