javascript - 增强 jQuery Mobile 菜单系统

标签 javascript jquery html css jquery-mobile

@Omar 创建了一个很酷的 ios 风格的菜单系统 here

我需要一些修改。

1) 当新的子菜单滑入时,之前的菜单应该滑出。

2) 新的子菜单应该继承与上一个菜单相同的背景色

最佳答案

您需要在打开另一个菜单时关闭打开 菜单。在打开任一菜单的 click 处理程序中,添加以下内容:

$(".ui-sub-panel-open")
    .addClass('ui-sub-panel-close ui-sub-panel-animate')
    .removeClass("ui-sub-panel-open");

这将关闭打开菜单然后滑动下一个;完整代码。

/* open submenu1 */
$('.sub1').on('click', function () {
    $(".ui-sub-panel-open")
        .addClass('ui-sub-panel-close ui-sub-panel-animate')
        .removeClass("ui-sub-panel-open");
    $('#submenu1')
        .addClass('ui-sub-panel-open ui-sub-panel-animate')
        .removeClass("ui-sub-panel-close");
});

/* open submenu2 */
$('.sub2').on('click', function () {
    $(".ui-sub-panel-open")
        .addClass('ui-sub-panel-close ui-sub-panel-animate')
        .removeClass("ui-sub-panel-open");
    $('#submenu2')
        .addClass('ui-sub-panel-open ui-sub-panel-animate')
        .removeClass("ui-sub-panel-close");
});

关于 background 颜色,添加你想要的任何颜色到 ui-sub-panel-open 和另一种颜色(如果你想要)到 ui-sub-面板关闭

.ui-sub-panel-open {
  -moz-transform: translate3d(-17em, 0, 0);
  -webkit-transform: translate3d(-17em, 0, 0);
  transform: translate3d(-17em, 0, 0);
  background: lightblue;
}

.ui-sub-panel-close {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  background: lightgray;
}

不要忘记删除下面的 CSS

#submenu1 {
  background: color;
}

#submenu2 {
  background: color;
}

更新

要向左滑动关闭的面板,请按如下方式修改 .ui-sub-panel-close

.ui-sub-panel-close {
  -webkit-transform: translate3d(-34em, 0, 0);
  -moz-transform: translate3d(-34em, 0, 0);
  transform: translate3d(-34em, 0, 0);
  background: lightgray;
}

然后您应该通过监听 transitionend 事件将子菜单返回到它的原始位置。

$(document).on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd", "#submenu1, #submenu2", function () {
  var position = $(this).offset().left;
  if (position < 0) {
    $(this).removeClass("ui-sub-panel-close ui-sub-panel-animate");
  }
});

Demo

关于javascript - 增强 jQuery Mobile 菜单系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22593638/

相关文章:

javascript - 使用传单创建标记层

javascript - 用于 JVM 和 JavaScript 的 headless 单源库

javascript - $仅在特定事件发生后观察属性

javascript - 在 JavaScript 中创建动态对象

html - CSS 过渡效果不佳

c# - 如何访问网站客户端的内容?

javascript - 访问iframe的顶部html和body标签

jquery - 使用jquery json解析特殊字符

jquery - Bootstrap 导航栏折叠按钮未显示在特定设备分辨率上

Javascript:RegExp 土耳其字符问题