Navigation

This is a basic header bar with logo and navigation that would typically be included from a separate file in the _partials folder.

<header id="primary" class="primary wide">
<div class="container">
<div id="logo">
<a href="/">
<img src="/images/layouts/logo.svg">
</a>
</div>
<button id="menu" type="button">
<span class="menu-bars">
<span class="menu-bar"></span>
</span>
</button>
<nav id="navigation" class="navigation">
<cfset navCounter = 0>
<cfset navTotalCounter = 0>
<ul>
<!--- you can set this to the parentID in order to change toolbar (primary navigation) to display children of a different parent
if you want to pull the main pages of the site, insert 0 as the ParentID --->
<cfset qry_toolbartop_ParentID = 0>

<!--- you can omit a page from being in the toolbar (primary navigation) by putting it's pageid here --->
<cfset qry_toolbartop_OMIT = 2350>

<!--- Query to grab the main pages of the website --->
<cfinclude template="#request.dir_globals#/layouts/qry_toolbarpages.cfm">

<!--- loop through the top level pages of the website --->
<cfoutput query="qry_toolbartop">
<cfset navTotalCounter = navTotalCounter + 1>

<cfif len(fldExternalLink) and not val(request.page_adminAccess)>
<cfset link2display = fldExternalLink>

<cfelseif val(qry_sitesecurity.fld_site_permalinks) and len(fldAlias)>
<cfset link2display = fldAlias>

<cfelse>
<cfset link2display = "#variables.baseHref##request.self#/PageID/#fldPageID_PK##request.addtoken#">
</cfif>

<cfif fldToolBarTitle is not "">
<cfset displayTitle = "#fldToolBarTitle#">
<cfelse>
<cfset displayTitle = "#fldTitle#">
</cfif>
<cfif fldPageID_PK EQ qry_pageinfo.fldParentID OR fldPageID_PK EQ qry_pageinfo.fldPageID_PK OR fldPageID_PK EQ qry_parentinfo.fldParentID>
<li><a href="#link2display#" class="active <cfif navTotalCounter EQ 1>first<cfelseif navTotalCounter EQ qry_toolbartop.recordcount>last</cfif>">#displayTitle#</a>
<cfelse>
<li><a href="#link2display#" <cfif navTotalCounter EQ 1>class="first"<cfelseif navTotalCounter EQ qry_toolbartop.recordcount>class="last"</cfif>>#displayTitle#</a>
</cfif>
</li>

<cfset navCounter = #navCounter# + 1>
</cfoutput>
</ul>
</nav><!--- END NAVIGATION --->
</div>
</header>
 

Mobile Navigation Javascript

This is a JavaScript function to expand and collapse the navigation on mobile. This is included in the /js/_globals.js file.

var navigation = (function() {
  var el = $("navigation");
  var button = $("menu");
  var navOpen = false;
  var ulHeight = function() {return el.down("ul").getHeight();};
  var open = function() {
    el.setStyle({height: ulHeight() + "px"}); 
    el.addClassName("active"); 
    button.addClassName("active");
    navOpen = true;
  };
  var close = function() {
    el.setStyle({height: 0 + "px"}); 
    el.removeClassName("active"); 
    button.removeClassName("active");
    navOpen = false;
  };
  var events = (function() {
    button.on("click", function(event,element){
      navOpen == false ? open() : close();
    });
  }());
  return {
    open: open,
    close: close
  }
}());