dom-scripts.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* expandable sections */
  2. (function () {
  3. function toggle (button, target) {
  4. var expanded = button.getAttribute('aria-expanded') === 'true'
  5. button.setAttribute('aria-expanded', !expanded)
  6. target.hidden = !target.hidden
  7. }
  8. var expanders = document.querySelectorAll('[data-expands]')
  9. Array.prototype.forEach.call(expanders, function (expander) {
  10. var target = document.getElementById(expander.getAttribute('data-expands'))
  11. expander.addEventListener('click', function () {
  12. toggle(expander, target)
  13. })
  14. })
  15. }());
  16. /* menu button */
  17. (function () {
  18. var button = document.getElementById('menu-button')
  19. var menu = document.getElementById('patterns-list')
  20. button.addEventListener('click', function() {
  21. var expanded = this.getAttribute('aria-expanded') === 'true'
  22. this.setAttribute('aria-expanded', !expanded)
  23. })
  24. }());
  25. /* persist navigation scroll point */
  26. (function () {
  27. window.onunload = function () {
  28. var scrollPoint = document.getElementById('patterns-nav').scrollTop
  29. localStorage.setItem('scrollPoint', scrollPoint)
  30. }
  31. window.addEventListener('DOMContentLoaded', function () {
  32. if (window.location.href.indexOf('patterns/') !== -1) {
  33. document.getElementById('patterns-nav').scrollTop = parseInt(localStorage.getItem('scrollPoint'))
  34. } else {
  35. document.getElementById('patterns-nav').scrollTop = 0
  36. }
  37. })
  38. }());