navbar.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. "use strict";
  2. const updateNavBar = () => {
  3. if ($(document).scrollTop() > 40) {
  4. $('#top-navbar').removeClass('initial-navbar');
  5. $('#top-navbar').addClass('final-navbar shadow');
  6. $('#navbar-toggler').removeClass('navbar-dark');
  7. $('#navbar-toggler').addClass('navbar-light');
  8. // color theme selector a.k.a. dark mode
  9. $('#navbar-theme-icon-svg').removeClass('navbar-icon-svg-dark');
  10. // get the main logo from hidden img tag
  11. let mainLogo = document.getElementById("main-logo")
  12. if (mainLogo !== null) {
  13. let logoURL = mainLogo.getAttribute("src");
  14. $('#logo').attr("src", logoURL);
  15. }
  16. } else {
  17. $('#top-navbar').removeClass('final-navbar shadow');
  18. $('#top-navbar').addClass('initial-navbar');
  19. $('#navbar-toggler').removeClass('navbar-light');
  20. $('#navbar-toggler').addClass('navbar-dark');
  21. // color theme selector a.k.a. dark mode
  22. $('#navbar-theme-icon-svg').addClass('navbar-icon-svg-dark');
  23. // get the inverted logo from hidden img tag
  24. let invertedLogo = document.getElementById("inverted-logo")
  25. if (invertedLogo !== null) {
  26. let logoURL = invertedLogo.getAttribute("src");
  27. $('#logo').attr("src", logoURL);
  28. }
  29. }
  30. };
  31. (function ($) {
  32. jQuery(document).ready(function () {
  33. // change navbar style on scroll
  34. // ==================================================
  35. // When the user scrolls down 80px from the top of the document, resize the navbar's padding and the logo's font size
  36. // $.onscroll = function() {scrollFunction()};
  37. $(document).scroll(function () {
  38. updateNavBar();
  39. });
  40. // Creates a click handler to collapse the navigation when
  41. // anchors in the mobile nav pop up are clicked
  42. var navMain = $(".navbar-collapse");
  43. if (navMain) {
  44. navMain.on("click", "a", null, function (e) {
  45. $('.navbar-collapse').collapse('hide');
  46. });
  47. }
  48. updateNavBar();
  49. });
  50. })(jQuery);