在Joomla 3中 - 如果我的菜单结构是:
关于
产品
如何限制菜单的深度?对于Instance,如果我只想要“关于”转到第1级,“产品”转到第3级?无论如何我可以单独设置吗?
我知道我可以使用: “display:none;”对于子菜单。
然而 - 使用响应式框架(如基础或引导程序)不起作用,因为“has-dropdown”类会触发移动设备的下拉菜单。
有什么想法吗?
答案 0 :(得分:1)
两个选项:
按原样保留菜单,并在第一个菜单中创建第二个带有别名的菜单,其中只包含您想要的页面。这是我使用的方法,其中第一个菜单是站点地图,第二个(和第三个等)用于导航菜单。
在您用来显示菜单的模块上,有一个限制链接级别的选项。但这适用于整个菜单。
答案 1 :(得分:0)
答案是您需要取消发布顶级菜单项关于您想要显示的子菜单项。我知道你回应 ilias 说这会打破SEF,但事实并非如此。继续并取消发布子菜单项faq,并刷新主页以验证子菜单不再出现。现在,导航到网址http://www.mysite.com/about/faq,然后看到页面仍然呈现。
在HTML呈现过程中mod_menu模块使用un-publish,创建的MVC路径仍然有效。这是一个很好的“最佳实践”,可以将SEF添加到没有菜单标题的专用页面,以创建未发布的菜单条目来静默管理SEF。
希望有帮助...
答案 2 :(得分:0)
好的 - 我们正在使用Foundation 3.2.5和Joomla - 这是我们的解决方案:
.dropdown.off {display: none !important;}
.top-bar ul>li.has-dropdown a.off:after {display: none;}
.top-bar ul>li.has-dropdown a.off {
padding-right: 10px;
}
/*
jQuery Foundation Top Bar 2.0.4
http://foundation.zurb.com
Copyright 2012, ZURB
Free to use under the MIT license.
http://www.opensource.org/licenses/mit-license.php
*/
/*jslint unparam: true, browser: true, indent: 2 */
(function(e,t,n){"use strict";var r={index:0,initialized:!1},i={init:function(n){return this.each(function(){r=e.extend(r,n),r.$w=e(t),r.$topbar=e("nav.top-bar"),r.$section=r.$topbar.find("section"),r.$titlebar=r.$topbar.children("ul:first");var s=e("<div class='top-bar-js-breakpoint'/>").appendTo("body");r.breakPoint=s.width(),s.remove(),r.initialized||(i.assemble(),r.initialized=!0),r.height||i.largestUL(),r.$topbar.parent().hasClass("fixed")&&e("body").css("padding-top",r.$topbar.outerHeight()),e(".top-bar .toggle-topbar").off("click.fndtn").on("click.fndtn",function(e){e.preventDefault(),i.breakpoint()&&(r.$topbar.toggleClass("expanded"),r.$topbar.css("min-height","")),r.$topbar.hasClass("expanded")||(r.$section.css({left:"0%"}),r.$section.find(">.name").css({left:"100%"}),r.$section.find("li.moved").removeClass("moved"),r.index=0)}),e(".top-bar .has-dropdown>a:not(.off)").off("click.fndtn").on("click.fndtn",function(t){(Modernizr.touch||i.breakpoint())&&t.preventDefault();if(i.breakpoint()){var n=e(this),s=n.closest("li");r.index+=1,s.addClass("moved"),r.$section.css({left:-(100*r.index)+"%"}),r.$section.find(">.name").css({left:100*r.index+"%"}),n.siblings("ul").height(r.height+r.$titlebar.outerHeight(!0)),r.$topbar.css("min-height",r.height+r.$titlebar.outerHeight(!0)*2)}}),e(t).on("resize.fndtn.topbar",function(){i.breakpoint()||r.$topbar.css("min-height","")}),e(".top-bar .has-dropdown .back").off("click.fndtn").on("click.fndtn",function(t){t.preventDefault();var n=e(this),i=n.closest("li.moved"),s=i.parent();r.index-=1,r.$section.css({left:-(100*r.index)+"%"}),r.$section.find(">.name").css({left:100*r.index+"%"}),r.index===0&&r.$topbar.css("min-height",0),setTimeout(function(){i.removeClass("moved")},300)})})},breakpoint:function(){return r.$w.width()<r.breakPoint},assemble:function(){r.$section.detach(),r.$section.find(".has-dropdown>a").each(function(){var t=e(this),n=t.siblings(".dropdown"),r=e('<li class="title back js-generated"><h5><a href="#"></a></h5></li>');r.find("h5>a").html(t.html()),n.prepend(r)}),r.$section.appendTo(r.$topbar)},largestUL:function(){var t=r.$topbar.find("section ul ul"),n=t.first(),i=0;t.each(function(){e(this).children("li").length>n.children("li").length&&(n=e(this))}),n.children("li").each(function(){i+=e(this).outerHeight(!0)}),r.height=i}};e.fn.foundationTopBar=function(t){if(i[t])return i[t].apply(this,Array.prototype.slice.call(arguments,1));if(typeof t=="object"||!t)return i.init.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.foundationTopBar")};if(e(".sticky").length>0){var s=e(".sticky").length?e(".sticky").offset().top:0,o=e(t);o.scroll(function(){o.scrollTop()>=s?e(".sticky").addClass("fixed"):o.scrollTop()<s&&e(".sticky").removeClass("fixed")})}})(jQuery,this);