diff options
| -rw-r--r-- | pydis_site/static/css/collapsibles.css | 6 | ||||
| -rw-r--r-- | pydis_site/static/js/collapsibles.js | 6 | ||||
| -rw-r--r-- | pydis_site/static/js/resources/resources.js | 7 | ||||
| -rw-r--r-- | pydis_site/templates/resources/resources.html | 4 | 
4 files changed, 12 insertions, 11 deletions
| diff --git a/pydis_site/static/css/collapsibles.css b/pydis_site/static/css/collapsibles.css index 8fdd1f12..d35e77ea 100644 --- a/pydis_site/static/css/collapsibles.css +++ b/pydis_site/static/css/collapsibles.css @@ -6,7 +6,11 @@  }  .collapsible-content { +  max-height: 40em; +  transition: max-height 0.3s ease-out; +} + +.collapsible-content.collapsed {    overflow: hidden;    max-height: 0; -  transition: max-height 0.2s ease-out;  } diff --git a/pydis_site/static/js/collapsibles.js b/pydis_site/static/js/collapsibles.js index 366a033c..d12d9f86 100644 --- a/pydis_site/static/js/collapsibles.js +++ b/pydis_site/static/js/collapsibles.js @@ -3,11 +3,7 @@ document.addEventListener("DOMContentLoaded", () => {      for (const header of headers) {          header.addEventListener("click", () => {              var content = header.nextElementSibling; -            if (content.style.maxHeight){ -              content.style.maxHeight = null; -            } else { -              content.style.maxHeight = content.scrollHeight + "px"; -            } +            content.classList.toggle('collapsed');          });      }  }); diff --git a/pydis_site/static/js/resources/resources.js b/pydis_site/static/js/resources/resources.js index bffb5e91..00bc6ad8 100644 --- a/pydis_site/static/js/resources/resources.js +++ b/pydis_site/static/js/resources/resources.js @@ -234,11 +234,12 @@ document.addEventListener("DOMContentLoaded", function () {      if (screen.width < 480) {          let categoryHeaders = $(".filter-category-header .collapsible-content");          let icons = $('.filter-category-header button .card-header-icon i'); -        categoryHeaders.addClass("no-transition"); -        categoryHeaders.css("max-height", ""); +        categoryHeaders.addClass("no-transition collapsed");          icons.removeClass(["far", "fa-window-minimize"]);          icons.addClass(["fas", "fa-angle-down"]); -        categoryHeaders.removeClass("no-transition"); + +        // Wait 10ms before removing this class, or else the transition will animate due to a race condition. +        setTimeout(() => { categoryHeaders.removeClass("no-transition"); }, 10);      }      // If you click on the div surrounding the filter checkbox, it clicks the corresponding checkbox. diff --git a/pydis_site/templates/resources/resources.html b/pydis_site/templates/resources/resources.html index cebaace2..c221c8a3 100644 --- a/pydis_site/templates/resources/resources.html +++ b/pydis_site/templates/resources/resources.html @@ -116,9 +116,9 @@                              {# Checkboxes #}                              {% if filter_data.hidden %} -                                <div class="collapsible-content"> +                                <div class="collapsible-content collapsed">                              {% else %} -                                <div class="collapsible-content" style="max-height: fit-content;"> +                                <div class="collapsible-content">                              {% endif %}                                      <div class="card-content">                                          {% for filter_item in filter_data.filters %} | 
