summaryrefslogtreecommitdiff
path: root/layouts/partials/nav.html
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/partials/nav.html')
-rw-r--r--layouts/partials/nav.html90
1 files changed, 90 insertions, 0 deletions
diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html
new file mode 100644
index 0000000..9059e9a
--- /dev/null
+++ b/layouts/partials/nav.html
@@ -0,0 +1,90 @@
+{{ $header_img := .Scratch.Get "header_img" }}
+{{ $navStyle := "invert" }}
+{{ with $header_img }}
+{{ $navStyle = "" }}
+{{ end }}
+
+<nav class="navbar navbar-default navbar-custom navbar-fixed-top {{ $navStyle }}">
+ <div class="container-fluid">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header page-scroll">
+ <button type="button" class="navbar-toggle">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="{{ .Site.BaseURL | safeURL }}">{{ .Site.Title }}</a>
+ </div>
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div id="huxblog_navbar">
+ <div class="navbar-collapse">
+ <ul class="nav navbar-nav navbar-right">
+ {{ range .Site.Menus.main }}
+ <li><a href="{{ .URL | safeURL }}" title="{{ .Name }}">{{ .Name }}</a></li>
+ {{ end }}
+
+ <li class="search-icon">
+ <a href="javascript:void(0)">
+ <i class="fa fa-search"></i>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ <!-- /.navbar-collapse -->
+ </div>
+ <!-- /.container -->
+</nav>
+<script>
+ // Drop Bootstarp low-performance Navbar
+ // Use customize navbar with high-quality material design animation
+ // in high-perf jank-free CSS3 implementation
+ var $body = document.body;
+ var $toggle = document.querySelector(".navbar-toggle");
+ var $navbar = document.querySelector("#huxblog_navbar");
+ var $collapse = document.querySelector(".navbar-collapse");
+
+ var __HuxNav__ = {
+ close: function () {
+ $navbar.className = " ";
+ // wait until animation end.
+ setTimeout(function () {
+ // prevent frequently toggle
+ if ($navbar.className.indexOf("in") < 0) {
+ $collapse.style.height = "0px";
+ }
+ }, 400);
+ },
+ open: function () {
+ $collapse.style.height = "auto";
+ $navbar.className += " in";
+ },
+ };
+
+ // Bind Event
+ $toggle.addEventListener("click", function (e) {
+ if ($navbar.className.indexOf("in") > 0) {
+ __HuxNav__.close();
+ } else {
+ __HuxNav__.open();
+ }
+ });
+
+ /**
+ * Since Fastclick is used to delegate 'touchstart' globally
+ * to hack 300ms delay in iOS by performing a fake 'click',
+ * Using 'e.stopPropagation' to stop 'touchstart' event from
+ * $toggle/$collapse will break global delegation.
+ *
+ * Instead, we use a 'e.target' filter to prevent handler
+ * added to document close HuxNav.
+ *
+ * Also, we use 'click' instead of 'touchstart' as compromise
+ */
+ document.addEventListener("click", function (e) {
+ if (e.target == $toggle) return;
+ if (e.target.className == "icon-bar") return;
+ __HuxNav__.close();
+ });
+</script> \ No newline at end of file