navbar2078

Navigation Bar behavior

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/491241/1510172/navbar2078.js

  1. function toggleMenu() {
  2. var menu = document.getElementById("menu");
  3. var header = document.getElementById("navbar");
  4. var rHidden = document.getElementById("register-form").classList.contains('hidden');
  5. var lHidden = document.getElementById("login-form").classList.contains('hidden');
  6. var mHidden = menu.classList.contains('hidden');
  7. var mVisible = menu.classList.contains('visible');
  8. var hActive = header.classList.contains('active');
  9.  
  10. if (mHidden && !hActive) {
  11. menu.classList.toggle('visible');
  12. menu.classList.toggle('hidden');
  13. header.classList.toggle('active');
  14. } else {
  15. menu.classList.toggle('visible');
  16. menu.classList.toggle('hidden');
  17. }
  18. if (mVisible && lHidden && rHidden) {
  19. header.classList.toggle('active');
  20. }
  21. }
  22.  
  23. function toggleSubmenu() {
  24. var submenu = document.getElementById("submenu");
  25. var menu = document.getElementById("menu");
  26. submenu.classList.toggle('visible');
  27. submenu.classList.toggle('hidden');
  28. event.stopPropagation();
  29. menu.classList.remove('hidden');
  30. menu.classList.add('visible');
  31. }
  32.  
  33. function toggleLogin() {
  34. var forml = document.getElementById("login-form");
  35. var formr = document.getElementById("register-form");
  36. var header = document.getElementById("navbar");
  37. var right = document.getElementById("right");
  38. var h1r = document.getElementById("register");
  39. var h1l = document.getElementById("login");
  40.  
  41.  
  42. if (forml.classList.contains('hidden') &&
  43. h1l.classList.contains('visible')) {
  44. forml.classList.remove('hidden');
  45. forml.classList.add('visible')
  46. formr.classList.remove('visible');
  47. formr.classList.add('hidden');
  48. h1l.classList.remove('visible');
  49. h1l.classList.add('hidden');
  50. h1r.classList.remove('hidden');
  51. h1r.classList.add('visible');
  52. header.classList.add('active');
  53. right.classList.add('active');
  54. } else {
  55. forml.classList.remove('visible');
  56. forml.classList.add('hidden');
  57. formr.classList.remove('hidden');
  58. formr.classList.add('visible');
  59. h1l.classList.remove('hidden');
  60. h1l.classList.add('visible');
  61. h1r.classList.remove('visible');
  62. h1r.classList.add('hidden');
  63. return;
  64. }
  65. }
  66.  
  67. function switchForm() {
  68. var forml = document.getElementById("login-form");
  69. var formr = document.getElementById("register-form");
  70. var h1r = document.getElementById("register");
  71. var h1l = document.getElementById("login");
  72. if (forml.classList.contains('visible')) {
  73. formr.classList.remove('hidden');
  74. formr.classList.add('visible');
  75. forml.classList.remove('visible');
  76. forml.classList.add('hidden');
  77. h1l.classList.remove('hidden');
  78. h1l.classList.add('visible');
  79. h1r.classList.remove('visible');
  80. h1r.classList.add('hidden');
  81. } else {
  82. formr.classList.remove('visible');
  83. formr.classList.add('hidden');
  84. forml.classList.remove('hidden');
  85. forml.classList.add('visible');
  86. h1r.classList.remove('hidden');
  87. h1r.classList.add('visible');
  88. h1l.classList.remove('visible');
  89. h1l.classList.add('hidden');
  90. }
  91. }
  92.  
  93. function closeForm() {
  94. document.getElementById("login-form").classList.remove('visible');
  95. document.getElementById("login-form").classList.add('hidden');
  96. document.getElementById("login").classList.remove('hidden');
  97. document.getElementById("login").classList.add('visible');
  98. document.getElementById("register-form").classList.remove('visible');
  99. document.getElementById("register-form").classList.add('hidden');
  100. document.getElementById("register").classList.remove('visible');
  101. document.getElementById("register").classList.add('hidden');
  102. if (document.getElementById("menu").classList.contains('hidden')) {
  103. document.getElementById("navbar").classList.remove('active');
  104. document.getElementById("right").classList.remove('active');
  105. }
  106. }
  107.  
  108. function headerCloseForm() {
  109. var forml = document.getElementById("login-form");
  110. var h1l = document.getElementById("login");
  111. var formr = document.getElementById("register-form");
  112. var h1r = document.getElementById("register");
  113. var menu = document.getElementById("menu");
  114. var submenu = document.getElementById("submenu");
  115. var header = document.getElementById("navbar");
  116. if (forml.classList.contains('visible')) {
  117. forml.classList.remove('visible');
  118. forml.classList.add('hidden');
  119. h1l.classList.remove('hidden');
  120. h1l.classList.add('visible');
  121. h1r.classList.remove('visible');
  122. h1r.classList.add('hidden');
  123. }
  124. if (formr.classList.contains('visible')) {
  125. formr.classList.remove('visible');
  126. formr.classList.add('hidden');
  127. h1r.classList.remove('visible');
  128. h1r.classList.add('hidden');
  129. }
  130. if (menu.classList.contains('visible')) {
  131. menu.classList.remove('visible');
  132. menu.classList.add('hidden');
  133. header.classList.remove('active');
  134. }
  135. if (submenu.classList.contains('visible')) {
  136. submenu.classList.remove('visible');
  137. submenu.classList.add('hidden');
  138. }
  139. if (menu.classList.contains('hidden') && forml.classList.contains('hidden') && formr.classList.contains('hidden')) {
  140. header.classList.remove('active');
  141. }
  142. }