wordpress基础手风琴移动子菜单
wordpress foundation accordion mobile submenu
我正在尝试将手风琴功能集成到wordpress菜单中。
我遇到了一个代码,但它并没有给我完全的期望(不是真正的js大师(。
这是html代码:
<div class="off-canvas-wrap" data-offcanvas>
<div class="inner-wrap">
<nav class="tab-bar">
<section class="left-small">
<a class="left-off-canvas-toggle menu-icon" href="#"><span></span></a>
</section>
</nav>
<aside class="left-off-canvas-menu">
<ul class="off-canvas-list">
<li><label>Foundation</label></li>
<li><a href="#">Option 1</a></li>
<li><a href="#" class="off-canvas-submenu-call">Option 2 <span class="right"> + </span></a></li>
<ul class="off-canvas-submenu">
<li><a href="#">Sub menu 1</a></li>
<li><a href="#">Sub menu 2</a></li>
<li><a href="#">Sub menu 3</a></li>
</ul>
<li><a href="#">Option 3</a></li>
<li><a href="#" class="off-canvas-submenu-call">Option 4 <span class="right"> + </span></a></li>
<ul class="off-canvas-submenu">
<li><a href="#">Sub menu 1</a></li>
<li><a href="#">Sub menu 2</a></li>
<li><a href="#">Sub menu 3</a></li>
</ul>
<li><a href="#">Option 5</a></li>
<li><a href="#">Option 6</a></li>
</ul>
</aside>
<section class="main-section">
Content
</section>
<a class="exit-off-canvas"></a>
</div>
</div>
这是jscript:
$(document).foundation();
$(".off-canvas-submenu").hide();
$(".off-canvas-submenu-call").click(function() {
var icon = $(this).parent().next(".off-canvas-submenu").is(':visible') ? '+' : '-';
$(this).parent().next(".off-canvas-submenu").slideToggle('fast');
$(this).find("span").text(icon);
});
这只适用于静态页面,也适用于wordpress,但问题是,当你点击菜单中的项目时,所有带有子菜单的li都会打开,而不是一次打开一个。注意菜单的html结构:
<aside class="left-off-canvas-menu">
<ul class="off-canvas-list">
<li><label>Foundation</label></li>
<li><a href="#">Option 1</a></li>
<li><a href="#" class="off-canvas-submenu-call">Option 2 <span class="right"> + </span></a></li>
<ul class="off-canvas-submenu">
<li><a href="#">Sub menu 1</a></li>
<li><a href="#">Sub menu 2</a></li>
<li><a href="#">Sub menu 3</a></li>
</ul>
<li><a href="#">Option 3</a></li>
<li><a href="#" class="off-canvas-submenu-call">Option 4 <span class="right"> + </span></a></li>
<ul class="off-canvas-submenu">
<li><a href="#">Sub menu 1</a></li>
<li><a href="#">Sub menu 2</a></li>
<li><a href="#">Sub menu 3</a></li>
</ul>
<li><a href="#">Option 5</a></li>
<li><a href="#">Option 6</a></li>
</ul>
</aside>
ul子菜单与li菜单处于同一级别。
在wordpress中,ul.submenu位于父li菜单中。
<aside class="left-off-canvas-menu">
<ul class="off-canvas-list">
<li><label>Foundation</label></li>
<li><a href="#">Option 1</a></li>
<li>
<a href="#" class="off-canvas-submenu-call">Option 2 <span class="right"> + </span></a>
<ul class="off-canvas-submenu">
<li><a href="#">Sub menu 1</a></li>
<li><a href="#">Sub menu 2</a></li>
<li><a href="#">Sub menu 3</a></li>
</ul>
</li>
</ul>
</aside>
当前的代码实际上工作了一点,但我们不想只点击一个li就打开所有的子菜单。
这是代码笔
$(document).foundation();
$(".off-canvas-submenu").hide();
$(".off-canvas-submenu-call").click(function() {
var icon = $(this).parent().find(".off-canvas-submenu").is(':visible') ? '+' : '-';
$(this).parent().find(".off-canvas-submenu").slideToggle('fast');
$(this).find("span").text(icon);
});
使用.find()
以这种方式工作,您将需要对.off-canvas-submenu
进行样式设置,因为它不再与其他元素处于同一级别,因此不会继承第一级别<ul>
的样式,但总的来说,您应该很好。
编辑:
适用于多个子菜单
<aside class="left-off-canvas-menu">
<ul class="off-canvas-list">
<li><label>Foundation</label></li>
<li><a href="#">Option 1</a></li>
<li>
<a href="#" class="off-canvas-submenu-call">Option 2 <span class="right"> + </span></a>
<ul class="off-canvas-submenu">
<li><a href="#">Sub menu 1</a></li>
<li><a href="#">Sub menu 2</a></li>
<li><a href="#">Sub menu 3</a></li>
</ul>
</li>
<li>
<a href="#" class="off-canvas-submenu-call">Option 3 <span class="right"> + </span></a>
<ul class="off-canvas-submenu">
<li><a href="#">Sub menu 1</a></li>
<li><a href="#">Sub menu 2</a></li>
<li><a href="#">Sub menu 3</a></li>
</ul>
</li>
</ul>
</aside>
相关文章:
- 展开移动设备上的折叠菜单,同时在桌面上保持悬停
- 我的响应菜单在移动版中不起作用
- 防止在移动Safari(iPad/iPhone)中长按/长按默认上下文菜单
- jQuery-适用于移动设备的多级菜单
- 选择后关闭移动菜单
- 导航菜单不适合移动浏览器
- 响应菜单问题-如何在移动环境中处理HREF和onclick事件
- 关闭移动菜单后恢复滚动位置
- 使悬停菜单适用于移动设备的最佳实践方法是什么?
- 移动设备中的菜单不会滚动
- 移动导航菜单不起作用(HTML,CSS和JQuery)
- 禁用特定元素的移动长按上下文菜单
- HTML下拉菜单's重定向(使用JS)不适用于移动设备,但在PC上运行良好
- 禁用移动IE上的callout(上下文菜单)
- 移动设备上的CSS下拉菜单.如何四处走动:悬停
- 当屏幕尺寸较小时,可使用Javascript向移动菜单添加链接.不再有效
- Wordpress 移动导航菜单:菜单出现在 iPhone 和其他移动设备上,但不是 iPad
- 多级响应菜单..移动和非移动之间的转换
- Javascript下拉菜单移动到下一个“;阶段”;
- 下拉菜单移动元素