Sho*_*vik 1 javascript jquery panel razor jquery-mobile
我一直在我的jquery移动设备上进行多级菜单或子菜单的工作,一般来说,第三部分jquery插件已经深深搞乱了我的与position:fixed页脚和滚动有关的CSS .
我在这里查看了插件,几乎所有插件都让我感到复杂.我希望我可以使用现有的jquery移动框架中的一些魔法来重新创建这个示例,如此处所示
这是一个快速的解决方案,只是为了给你一个想法.它有很大的改进空间,所以每当我做任何改动时,我都会更新这个答案.
尽可能多地创建子菜单,每个子菜单都有一个唯一的ID,一个关闭按钮和一个类.将子菜单放在主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>
Run Code Online (Sandbox Code Playgroud)CSS
全高,宽和定位外页.
.ui-sub-panel {
width: 100%;
position: absolute;
top: 0;
left: -100%;
min-height: 100%;
max-height: none;
}
Run Code Online (Sandbox Code Playgroud)打开子菜单
.ui-sub-panel-open {
-moz-transform: translate3d(100%, 0, 0);
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)关闭子菜单
.ui-sub-panel-close{
-moz-transform: translate3d(0, 0, 0);
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)动画关闭/打开
.ui-sub-panel-animate {
-webkit-transition: -webkit-transform 500ms ease;
-moz-transition: -moz-transform 500ms ease;
transition: transform 500ms ease;
}
Run Code Online (Sandbox Code Playgroud)JS
主jQM面板关闭后关闭所有子菜单
$("#externalpanel").on("panelbeforeclose", function () {
$('#submenu1, #submenu2')
.addClass('ui-sub-panel-close ui-sub-panel-animate')
.removeClass("ui-sub-panel-open");
});
Run Code Online (Sandbox Code Playgroud)打开第一个子菜单
$('.sub1').on('click', function () {
$('#submenu1')
.addClass('ui-sub-panel-open ui-sub-panel-animate')
.removeClass("ui-sub-panel-close");
});
Run Code Online (Sandbox Code Playgroud)打开第二个子菜单
$('.sub2').on('click', function () {
$('#submenu2')
.addClass('ui-sub-panel-open ui-sub-panel-animate')
.removeClass("ui-sub-panel-close");
});
Run Code Online (Sandbox Code Playgroud)关闭单击关闭按钮的子菜单
$('.panel-close').on('click', function () {
$(this)
.closest(".ui-sub-panel")
.addClass('ui-sub-panel-close ui-sub-panel-animate')
.removeClass("ui-sub-panel-open");
});
Run Code Online (Sandbox Code Playgroud)演示 (1)
更新1
要将面板定位到右侧,请将data-position="right"属性添加到面板div.另外,在.ui-sub-panel课堂上,left改为right.
.ui-sub-panel {
...
right: -100%;
...
}
Run Code Online (Sandbox Code Playgroud)
演示 (1)
(1)在Safari上测试 - iPhone 5 iOS 7.0.6和iPad 2 iOS 7.1
| 归档时间: |
|
| 查看次数: |
9417 次 |
| 最近记录: |