index.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. // Botao de voltar para o topo da pagina
  2. let btnVoltar = document.getElementById("ifr__btn__backToTop");
  3. window.onscroll = function () {
  4. scrollFunction();
  5. };
  6. function scrollFunction() {
  7. if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
  8. btnVoltar.style.display = "block";
  9. } else {
  10. btnVoltar.style.display = "none";
  11. }
  12. }
  13. function backToTop() {
  14. document.body.scrollTop = 0;
  15. document.documentElement.scrollTop = 0;
  16. }
  17. // Insere em todos rodapés
  18. // let footer = document.getElementById("footer");
  19. // footer.innerHTML =
  20. // "<p>Atualizado pela ultima vez em: 3 de Outubro de 2023 -- por <a href='http://www.ime.usp.br/~laira'>Laira</a>.</p>";
  21. // Insere em todos rodapés
  22. const lastUpdate =
  23. "Atualizado pela ultima vez em: 25 de março de 2025 -- por <a href='http://www.ime.usp.br/~laira'>Laira</a>.";
  24. let footer = document.getElementById("footer");
  25. footer.innerHTML = `
  26. <div class="row">
  27. <div class="col-md-6 d-flex flex-column align-items-center justify-content-end">
  28. <a href="https://line.ime.usp.br/" title="Seguir para a página principal do LInE">
  29. <img src="/assets/logo_line_no_sub.png" height="70"/>
  30. </a>
  31. <span>Free Education, Private Data</span>
  32. </div>
  33. <div class="col-md-6 d-flex flex-column align-items-center justify-content-end">
  34. <span>
  35. <a href="/index.html" target="_self" title="Seguir para a página principal do iFrações">iFrações</a> |
  36. <a href="https://line.ime.usp.br/" title="Seguir para a página principal do LInE">LInE</a> |
  37. <a href="https://www.matematica.br/" title="Seguir para a página principal do iMática">iM&aacute;tica</a>
  38. </span>
  39. </div>
  40. </div>
  41. <hr/>
  42. <p>${lastUpdate}</p>
  43. </div>`;
  44. // Cria menu de navegação
  45. let nav = document.querySelector(".navbar");
  46. nav.innerHTML = `
  47. <div class="container-fluid">
  48. <a class="navbar-brand" aria-current="page" target="_self" href="index.html">iFractions</a>
  49. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown"
  50. aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
  51. <span class="navbar-toggler-icon"></span>
  52. </button>
  53. <div class="collapse navbar-collapse" id="navbarNavDropdown">
  54. <ul class="navbar-nav">
  55. <li class="nav-item">
  56. <a class="nav-link" target="_self" href="index.html#download">Download</a>
  57. </li>
  58. <li class="nav-item">
  59. <a class="nav-link" target="_self" href="./paginas/sobre/page_1.html">Conhecendo o iFractions</a>
  60. </li>
  61. <li class="nav-item dropdown">
  62. <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button"
  63. data-bs-toggle="dropdown" aria-expanded="false"> Documentação
  64. </a>
  65. <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
  66. <li><a class="dropdown-item" target="_self" href='./paginas/documentacao.html'>Início</a>
  67. </li>
  68. <li><a class="dropdown-item" target="_self" href='./paginas/documentacao.html#sou-prof'>Sou Professor</a>
  69. </li>
  70. <li><a class="dropdown-item" target="_self" href='./paginas/documentacao.html#sou-admin'>Sou
  71. Administrador Moodle</a>
  72. </li>
  73. <li><a class="dropdown-item" target="_self" href='./paginas/documentacao.html#sou-dev'>Sou
  74. Desenvolvedor</a>
  75. </li>
  76. </ul>
  77. </li>
  78. <li class="nav-item">
  79. <a class="nav-link" target="_self" href="./paginas/publicacoes.html">Publicações</a>
  80. </li>
  81. </ul>
  82. </div>
  83. </div>
  84. `;
  85. // Coloca imagem no modal
  86. const modal = document.getElementById("myModal");
  87. let img = document.getElementsByClassName("ifr__img");
  88. for (let i = 0; i < img.length; i++) {
  89. img[i].addEventListener("click", function () {
  90. modal.style.display = "block";
  91. document.getElementById("myModal-img").src = img[i].src;
  92. document.getElementById("caption").innerHTML = this.alt;
  93. });
  94. }
  95. let span = document.getElementsByClassName("close")[0];
  96. span.onclick = () => (modal.style.display = "none");
  97. // Gera indice
  98. const toc = document.querySelector(".ifr__toc");
  99. if (toc) {
  100. const sections_all = document.querySelectorAll("section");
  101. sections_all.forEach((section_h2) => {
  102. const h2 = section_h2.querySelectorAll("h2")[0];
  103. if (h2) {
  104. const h2_ul = document.createElement("ul");
  105. const h2_li = document.createElement("li");
  106. const h3_ul = document.createElement("ul");
  107. const sections_h3 = section_h2.querySelectorAll("section");
  108. sections_h3.forEach((section_h3) => {
  109. const h3 = section_h3.querySelectorAll("h3")[0];
  110. if (h3) {
  111. const h3_li = document.createElement("li");
  112. h3_li.innerHTML = `<a href="#${section_h3.id}" target="_self">${h3.innerHTML}</a>`;
  113. h3_ul.appendChild(h3_li);
  114. }
  115. });
  116. h2_li.innerHTML = `<a href="#${section_h2.id}" target="_self">${h2.innerHTML}</a>`;
  117. h2_ul.appendChild(h2_li);
  118. h2_ul.appendChild(h3_ul);
  119. toc.appendChild(h2_ul);
  120. }
  121. });
  122. }
  123. // Insere em todos rodapés
  124. const updateMenu = (depth) => {
  125. const path = depth == 1 ? "../" : "../../";
  126. const semiPath = depth == 1 ? "./" : "../";
  127. nav.innerHTML = `
  128. <div class="container-fluid">
  129. <a class="navbar-brand" aria-current="page" target="_self" href="${path}index.html">iFractions</a>
  130. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown"
  131. aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
  132. <span class="navbar-toggler-icon"></span>
  133. </button>
  134. <div class="collapse navbar-collapse" id="navbarNavDropdown">
  135. <ul class="navbar-nav">
  136. <li class="nav-item">
  137. <a class="nav-link" target="_self" href="${path}index.html#download">Download</a>
  138. </li>
  139. <li class="nav-item">
  140. <a class="nav-link" target="_self" href="${semiPath}sobre/page_1.html">Conhecendo o iFractions</a>
  141. </li>
  142. <li class="nav-item dropdown">
  143. <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button"
  144. data-bs-toggle="dropdown" aria-expanded="false"> Documentação
  145. </a>
  146. <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
  147. <li><a class="dropdown-item" target="_self" href='${semiPath}documentacao.html'>Início</a>
  148. </li>
  149. <li><a class="dropdown-item" target="_self" href='${semiPath}documentacao.html#sou-prof'>Sou Professor</a>
  150. </li>
  151. <li><a class="dropdown-item" target="_self" href='${semiPath}documentacao.html#sou-dev'>Sou
  152. Administrador Moodle</a>
  153. </li>
  154. <li><a class="dropdown-item" target="_self" href='${semiPath}documentacao.html#sou-admin'>Sou
  155. Desenvolvedor</a>
  156. </li>
  157. </ul>
  158. </li>
  159. <li class="nav-item">
  160. <a class="nav-link" target="_self" href="${semiPath}publicacoes.html">Publicações</a>
  161. </li>
  162. </ul>
  163. </div>
  164. </div>
  165. `;
  166. };