From 89d4be53f1331b157391f2ebd5969386bf7dfd58 Mon Sep 17 00:00:00 2001 From: Ken Hawkins <khawkins98@gmail.com> Date: Mon, 18 Jun 2018 13:07:12 +0200 Subject: [PATCH] Add patern for dynamic menu highlighting Documents https://github.com/ebiwd/EBI-Framework/issues/136 --- .../patterns/menu-auto-highlight/layout.html | 10 +++++++++ .../menu-auto-highlight.html | 17 +++++++++++++++ .../menu-auto-highlight.js | 20 ++++++++++++++++++ .../menu-auto-highlight.png | Bin 0 -> 22048 bytes .../menu-auto-highlight.yml | 15 +++++++++++++ 5 files changed, 62 insertions(+) create mode 100644 content/websites/patterns/menu-auto-highlight/layout.html create mode 100644 content/websites/patterns/menu-auto-highlight/menu-auto-highlight.html create mode 100644 content/websites/patterns/menu-auto-highlight/menu-auto-highlight.js create mode 100644 content/websites/patterns/menu-auto-highlight/menu-auto-highlight.png create mode 100644 content/websites/patterns/menu-auto-highlight/menu-auto-highlight.yml diff --git a/content/websites/patterns/menu-auto-highlight/layout.html b/content/websites/patterns/menu-auto-highlight/layout.html new file mode 100644 index 0000000..c994b5e --- /dev/null +++ b/content/websites/patterns/menu-auto-highlight/layout.html @@ -0,0 +1,10 @@ +{{#markdown}} + +### Notes + +- The JS tries to automatically detect active menu item and append class `.active`. +- It's currently used a bit of jQuery, but this could be coded as vanilla JS. +- This pattern is likely of most help for JS-powered pages. +{{/markdown}} + +{{> menu-auto-highlight}} diff --git a/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.html b/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.html new file mode 100644 index 0000000..bf8327e --- /dev/null +++ b/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.html @@ -0,0 +1,17 @@ +<header id="masthead" class="masthead"> + <div class="masthead-inner row"> + <!-- local-title --> + <div class="columns medium-12" id="local-title"> + <h1><a href="../../" title="Back to [service-name] homepage">Detect active menu item</a></h1> + </div> + <!-- /local-title --> + <!-- local-nav --> + <nav> + <ul id="local-nav" class="dropdown menu float-left" data-description="navigational"> + <li><a href="/">Current page (relative)</a></li> + <li><a href="/some-other-page">Not current page</a></li> + </ul> + </nav> + <!-- /local-nav --> + </div> +</header> diff --git a/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.js b/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.js new file mode 100644 index 0000000..92e2c23 --- /dev/null +++ b/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.js @@ -0,0 +1,20 @@ +// Currently this uses jQuery, but could be done without +// Pull Requests welcome! :P +function setNavigation() { + var path = window.location.pathname; + console.log('current path:', path) + path = path.replace(/\/$/, ""); + path = decodeURIComponent(path); + + $("#local-nav a").each(function () { + var href = $(this).attr('href'); + if (path.substring(0, href.length) === href) { + $(this).closest('li').addClass('active'); + } + }); +} + +$(function () { + // when jquery is ready... + setNavigation(); +}); diff --git a/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.png b/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.png new file mode 100644 index 0000000000000000000000000000000000000000..4dfafe2e8ebb5409af45a5977742faba6ec038db GIT binary patch literal 22048 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 literal 0 HcmV?d00001 diff --git a/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.yml b/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.yml new file mode 100644 index 0000000..018da40 --- /dev/null +++ b/content/websites/patterns/menu-auto-highlight/menu-auto-highlight.yml @@ -0,0 +1,15 @@ +name: 'Detect and highlight active menu item' +tags: + - navigation + - layout + - menus + - 'JS Framework' +category: navigation +description: Use this pattern to automatically highlight the current menu item depending on path. +versions: + - 1.2.0 + - 1.3.0 +author: + name: Ken Hawkins + github: khawkins98 + twitter: khawkins98 -- GitLab