[英]JQuery Mobile Sliding Panel with nested menu/ multi-level menu
这是一个快速的解决方案,仅供您参考。 它有很大的改进空间,因此只要进行任何更改,我都将更新此答案。
根据需要创建子菜单,每个子菜单都有一个唯一的ID和一个带有class的关闭按钮。 将子菜单放在jQM主面板内。
子菜单HTML结构
<div class='ui-sub-panel' id='submenu1'> <div class='ui-header' data-theme='a'> <a href='#' class='ui-btn ui-btn-right ui-btn-icon-notext ui-icon-delete panel-close'>Close</a> <h1 class='ui-title'>Submenu1</h1> </div> <div class="ui-content"> <!-- submenu contents here --> </div> </div>
CSS
全高,全宽并位于外部页面。
.ui-sub-panel { width: 100%; position: absolute; top: 0; left: -100%; min-height: 100%; max-height: none; }
打开子菜单
.ui-sub-panel-open { -moz-transform: translate3d(100%, 0, 0); -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); }
关闭子菜单
.ui-sub-panel-close{ -moz-transform: translate3d(0, 0, 0); -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
动画关闭/打开
.ui-sub-panel-animate { -webkit-transition: -webkit-transform 500ms ease; -moz-transition: -moz-transform 500ms ease; transition: transform 500ms ease; }
JS
关闭主jQM面板后,关闭所有子菜单
$("#externalpanel").on("panelbeforeclose", function () { $('#submenu1, #submenu2') .addClass('ui-sub-panel-close ui-sub-panel-animate') .removeClass("ui-sub-panel-open"); });
打开第一个子菜单
$('.sub1').on('click', function () { $('#submenu1') .addClass('ui-sub-panel-open ui-sub-panel-animate') .removeClass("ui-sub-panel-close"); });
打开第二个子菜单
$('.sub2').on('click', function () { $('#submenu2') .addClass('ui-sub-panel-open ui-sub-panel-animate') .removeClass("ui-sub-panel-close"); });
单击关闭按钮的“关闭”子菜单
$('.panel-close').on('click', function () { $(this) .closest(".ui-sub-panel") .addClass('ui-sub-panel-close ui-sub-panel-animate') .removeClass("ui-sub-panel-open"); });
示范 (1)
更新1
要将面板放置在右侧,请在面板div中添加data-position="right"
属性。 同样,在.ui-sub-panel
类中, left
right
更改。
.ui-sub-panel {
...
right: -100%;
...
}
示范 (1)
(1)在Safari上测试-iPhone 5 iOS 7.0.6和iPad 2 iOS 7.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.