1

我相信你们中的一些人会觉得这个插件很好用。我的问题是这个插件做了一些 DOM 操作并隐藏了导航,你只能在抽屉触发器上显示它。

你知道如何在页面上使用这个插件而不需要脚本对我的页面进行任何 DOM 更改吗?

另外,你知道这个插件有什么替代品吗? http://mmenu.frebsite.nl/

4

2 回答 2

3

我制作了一个与 mmenu 功能相似的自定义菜单,但没有大量代码、类和选项。

你可以在这里看到一个例子:http: //jsfiddle.net/bjornnyborg/zjLrahpo/3/

我已将它用于 Umbraco 安装,并使用以下代码实现:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
<nav>
    <div class="menu-header">
        <div id="currentMenu" class="text-center">@CurrentPage.Name</div>
        <div id="back" data-target="menu-@CurrentPage.Parent.Id">
            <i class="fa fa-arrow-left"></i>
        </div>
    </div>
    @menuLoop(CurrentPage.Site())                           
</nav>
@helper menuLoop(dynamic item){
    var  menuClass = "";
    if(item.Id == CurrentPage.Site().Id){
        menuClass = "root-menu";
    }
    <div class="menu @menuClass @(item.IsEqual(CurrentPage) ? "active" : null)" id="menu-@item.Id" data-parent="menu-@item.Parent.Id" data-name="@item.Name">
        <ul>
            @menuListLoop(item)
        </ul>
    </div>
    foreach(var page in item.Children().Where("Visible")){
        @menuLoop(page)
    }
}
@helper menuListLoop(dynamic item){
    foreach(var page in item.Children()){
        <li>
            <a href="@page.Url">@page.Name</a>
            @if(page.Children().Where("Visible").Any()){
                <span class="next" data-target="menu-@page.Id">
                    <i class="fa fa-angle-right"></i>
                </span>
            }
        </li>
    }
}

我希望它有帮助!:)

于 2015-09-16T13:13:09.267 回答
1

我怀疑您是否可以阻止插件进行 DOM 更改,因为这很可能是它的设计工作方式(当然,除非您开始修改插件文件,但这首先违背了使用它的目的)。

我一直在使用 Jasny Bootstrap 组件中包含的类似插件 http://jasny.github.io/bootstrap/javascript/#offcanvas

由于我的项目已经在使用 Bootstrap,因此 HTML 结构已经准备就绪,实施起来也相当轻松。

示例:http: //jasny.github.io/bootstrap/examples/navmenu-push/

我使用的是它的修改版本,它充当桌面上的标准导航栏,然后切换到移动设备上的非画布 http://jasny.github.io/bootstrap/examples/navbar-offcanvas/

于 2014-05-27T04:15:40.657 回答