accordion.js 851 B

1234567891011121314151617181920212223242526
  1. const allPanels = Array.from(document.querySelectorAll(".panel"));
  2. const allAccordion = Array.from(document.querySelectorAll(".accordion"));
  3. const expandAccordion = (elem) => {
  4. if (!elem.parentElement.classList.contains("active")) {
  5. allAccordion.forEach((acc) => {
  6. acc.classList.remove("active");
  7. });
  8. elem.parentElement.classList.add("active");
  9. allPanels.forEach(function (elem) {
  10. elem.style.maxHeight = null;
  11. });
  12. let activePanel = elem.parentElement.nextElementSibling;
  13. if (
  14. activePanel.id != "skill-panel" &&
  15. document.querySelector("#skill-panel")
  16. ) {
  17. let skillBars = Array.from(document.querySelectorAll("#skill-percent"));
  18. skillBars.forEach((elem) => {
  19. elem.style.width = "0";
  20. });
  21. }
  22. activePanel.style.maxHeight = activePanel.scrollHeight + "px";
  23. }
  24. };