dom-scripts.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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.addEventListener('unload', function() {
  28. var scrollPoint = document.getElementById('patterns-nav').scrollTop
  29. localStorage.setItem('scrollPoint', scrollPoint)
  30. })
  31. window.addEventListener('load', function() {
  32. document.getElementById('patterns-nav').scrollTop = parseInt(localStorage.getItem('scrollPoint'))
  33. })
  34. }());