| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 document.addEventListener("DOMContentLoaded", function() | 1 (function(){ |
|
saroyanm
2016/05/19 07:43:41
addEventListener is not supported in older version
juliandoucette
2016/05/19 12:01:45
My mistake. Will fix.
| |
| 2 { | 2 function addListener(target, event, callback) |
| 3 // expand & contract fixed header | 3 { |
| 4 if (target.addEventListener) | |
| 5 return target.addEventListener(event, callback, false); | |
| 6 else | |
| 7 return target.attachEvent("on" + event, callback); | |
| 8 } | |
| 4 | 9 |
| 5 var header = document.getElementById("header"); | 10 function onLoad(callback) |
| 6 var headerPadding = 13; | 11 { |
|
saroyanm
2016/05/19 07:43:41
Detail: you are using the value only in 1 place so
juliandoucette
2016/05/19 12:01:45
For readability? (To give the literal value meanin
saroyanm
2016/05/23 12:39:20
Acknowledged.
| |
| 12 if (document.addEventListener) | |
| 13 return addListener(document, "DOMContentLoaded", callback); | |
| 14 else | |
| 15 return addListener(window, "load", callback); | |
| 16 } | |
| 7 | 17 |
| 8 window.addEventListener("scroll", function() | 18 onLoad(function() |
| 9 { | 19 { |
| 10 var scrollY = window.scrollY || document.documentElement.scrollTop; | 20 // expand & contract fixed header |
| 11 if (scrollY < headerPadding) | 21 var header = document.getElementById("header"); |
| 22 var headerPadding = 13; | |
| 23 addListener(window, "scroll", function() | |
| 12 { | 24 { |
| 13 header.className = "top"; | 25 var scrollY = window.scrollY || document.documentElement.scrollTop; |
| 14 } | 26 if (scrollY < headerPadding) |
| 15 else | 27 header.className = "top"; |
| 28 else | |
| 29 header.className = ""; | |
| 30 }); | |
| 31 // open & close header menu (on small screens) | |
| 32 var menu = document.getElementById("menu"); | |
| 33 var menuButton = document.getElementById("header-hamburger"); | |
| 34 addListener(menuButton, "click", function() | |
| 16 { | 35 { |
| 17 header.className = ""; | 36 if (menu.className === "open") |
| 18 } | 37 { |
| 19 }, false); | 38 menu.className = ""; |
| 20 | 39 menu.setAttribute("aria-expanded", false); |
| 21 // open & close header menu (on small screens) | 40 } |
| 22 | 41 else |
| 23 var menu = document.getElementById("menu"); | 42 { |
|
saroyanm
2016/05/19 07:43:40
Detail: you can get the menu element using the "he
juliandoucette
2016/05/19 12:01:45
Yes. But that is a preference.
document.getElemen
saroyanm
2016/05/23 12:39:20
I agree with you
| |
| 24 var menuButton = document.getElementById("header-hamberger"); | 43 menu.className = "open"; |
| 25 | 44 menu.setAttribute("aria-expanded", true); |
| 26 menuButton.addEventListener("click", function() | 45 } |
| 27 { | 46 }); |
| 28 if (menu.className === "open") | 47 }); |
| 29 { | 48 }()); |
| 30 menu.className = ""; | |
| 31 menu.setAttribute("aria-expanded", false); | |
| 32 } | |
| 33 else | |
| 34 { | |
| 35 menu.className = "open"; | |
| 36 menu.setAttribute("aria-expanded", true); | |
| 37 } | |
| 38 }, false); | |
| 39 }, false); | |
| LEFT | RIGHT |