You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

74 lines
3.0 KiB

  1. window.addEventListener('scroll', function(e) {
  2. if (document.querySelector('body').clientWidth > 767) {
  3. let rightcolumn = document.querySelector('.rightcolumn');
  4. let mantletitle = document.querySelector('.mantletitle') || document.querySelector('.crusttitle') || false;
  5. if (!mantletitle) {
  6. return
  7. }
  8. let mantlebar = document.querySelector('.mantlebar')
  9. let grid = document.querySelector('.grid')
  10. let gridrect = mantletitle.getBoundingClientRect();
  11. if ((document.querySelector('body').clientHeight - (grid.clientHeight + mantletitle.clientHeight + 32)) < window.innerHeight) {
  12. return
  13. }
  14. if (gridrect.top < 20 && !grid.classList.contains('moved')) {
  15. grid.classList.add('moved');
  16. mantlebar.style.display = "inline";
  17. mantletitle.style.visibility = "hidden";
  18. } else if (gridrect.top > 21 && grid.classList.contains('moved')) {
  19. grid.classList.remove('moved');
  20. mantletitle.style.visibility = "visible";
  21. mantlebar.style.display = "none";
  22. }
  23. } else {
  24. let rightcolumn = document.querySelector('.rightcolumn');
  25. let mantletitle = document.querySelector('.mantletitle') || document.querySelector('.crusttitle') || false;
  26. if (!mantletitle) {
  27. return
  28. }
  29. let mantlebar = document.querySelector('.mantlebar')
  30. let grid = document.querySelector('.grid')
  31. let gridrect = mantletitle.getBoundingClientRect();
  32. if (gridrect.top < 20 && !grid.classList.contains('moved')) {
  33. grid.classList.add('moved');
  34. mantlebar.style.display = "inline";
  35. mantletitle.style.visibility = "hidden";
  36. } else if (gridrect.top > 21 && grid.classList.contains('moved')) {
  37. grid.classList.remove('moved');
  38. mantletitle.style.visibility = "visible";
  39. mantlebar.style.display = "none";
  40. }
  41. }
  42. })
  43. window.addEventListener('DOMContentLoaded', (e) => {
  44. let par = document.querySelector("#TableOfContents > ol:first-child > li:first-child");
  45. let s = document.createElement("span");
  46. s.appendChild(par.cloneNode(true))
  47. par.remove()
  48. document.querySelector("#TableOfContents > ol:first-child").insertBefore(s, document.querySelector("#TableOfContents > ol:first-child").firstChild)
  49. if (document.querySelector(".soundcite")) {
  50. let relPath ="../".repeat(relPathDepth - 1);
  51. var popcorn = document.createElement('script');
  52. popcorn.src = `${relPath}js/popcorn.min.js`;
  53. document.body.appendChild(popcorn);
  54. var soundcite = document.createElement('script');
  55. soundcite.src = `${relPath}js/soundcite.min.js`;
  56. document.body.appendChild(soundcite);
  57. }
  58. document.querySelectorAll('#TableOfContents a').forEach(i => {
  59. i.addEventListener('click', e => {
  60. setTimeout(() => {
  61. window.scrollBy({top: document.querySelector('.header').clientHeight * -1.25, behavior: 'smooth'})}, 50);
  62. })
  63. })
  64. })