summaryrefslogtreecommitdiff
path: root/_includes/views/header.html
blob: 10637c25df86ba575a91ca888ec183675a43795a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
{%- include functions.html func='log' level='debug' msg='Get banner value' -%}
{% assign name = 'banner' %}
{%- include functions.html func='get_value' -%}
{% assign banner = return %}

{%- include functions.html func='log' level='debug' msg='Get header_transparent value' -%}
{% assign name = 'header_transparent' %}
{%- include functions.html func='get_value' -%}
{% assign header_transparent = return %}

{%- if banner and header_transparent -%}
  {%- assign header_transparent_class = "site-header-transparent" -%}
{%- endif -%}

<header class="site-header {{ header_transparent_class }}" role="banner">

  <div class="wrapper">
    {%- assign default_paths = site.pages | where: "dir", "/" | map: "path" -%}
    {%- assign page_paths = site.header_pages | default: default_paths -%}

    <span class="site-brand">
      {%- include views/site-brand.html -%}
    </span>

    {%- if page_paths -%}
      <nav class="site-nav">
        <input type="checkbox" id="nav-trigger" class="nav-trigger" />
        <label for="nav-trigger">
          <span class="menu-icon">
            <svg viewBox="0 0 18 15" width="18px" height="15px">
              <path d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.032C17.335,0,18,0.665,18,1.484L18,1.484z M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.032C17.335,6.031,18,6.696,18,7.516L18,7.516z M18,13.516C18,14.335,17.335,15,16.516,15H1.484 C0.665,15,0,14.335,0,13.516l0,0c0-0.82,0.665-1.483,1.484-1.483h15.032C17.335,12.031,18,12.695,18,13.516L18,13.516z"/>
            </svg>
          </span>
        </label>

        <div class="trigger">
          {%- for path in page_paths -%}
            {%- assign my_page = site.pages | where: "path", path | first -%}
            {%- if my_page.title -%}
            <a class="page-link" href="{{ my_page.url | relative_url }}">
              {{ my_page.title | upcase | escape }}
            </a>
            {%- endif -%}
          {%- endfor -%}

          {%- assign name = 'translate_langs' -%}
          {%- include functions.html func='get_value' -%}
          {%- assign translate_langs = return -%}
          {%- if translate_langs.size > 0 -%}
            <span class="page-link">
                {%- include extensions/google-translate.html -%}
            </span>
          {%- endif -%}
        </div>
      </nav>
    {%- endif -%}
  </div>
</header>

<script>
  (function() {
    var supportPageOffset = window.pageXOffset !== undefined;
    var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");

    function scrollY() {
      return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
    }

    var lastScrollY = scrollY();
    var dataset = document.documentElement.dataset;

    function storeScrollData() {
      var y = scrollY();

      {%- if banner and header_transparent -%}
      dataset.headerTransparent = "";
      {%- endif -%}

      var scrollStatus = "";

      if (y <= 0) {
        scrollStatus = "top";
      } else if ((window.innerHeight + y) >= document.body.offsetHeight) {
        scrollStatus = "bottom";
      } else {
        var isScrollDown = (y - lastScrollY > 0) ? true : false;
        scrollStatus = isScrollDown ? "down" : "up";
      }

      lastScrollY = y;
      dataset.scrollStatus = scrollStatus;
    }

    window.addEventListener('scroll', function(e) {
      storeScrollData();
    });

    storeScrollData();
  })();
</script>