Skip to content

Commit d31340f

Browse files
committed
Fix bug where transition wouldn't work on first collapse.
1 parent 3c92f66 commit d31340f

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

pydis_site/static/css/collapsibles.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
}
77

88
.collapsible-content {
9+
max-height: 40em;
10+
transition: max-height 0.3s ease-out;
11+
}
12+
13+
.collapsible-content.collapsed {
914
overflow: hidden;
1015
max-height: 0;
11-
transition: max-height 0.2s ease-out;
1216
}

pydis_site/static/js/collapsibles.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@ document.addEventListener("DOMContentLoaded", () => {
33
for (const header of headers) {
44
header.addEventListener("click", () => {
55
var content = header.nextElementSibling;
6-
if (content.style.maxHeight){
7-
content.style.maxHeight = null;
8-
} else {
9-
content.style.maxHeight = content.scrollHeight + "px";
10-
}
6+
content.classList.toggle('collapsed');
117
});
128
}
139
});

pydis_site/static/js/resources/resources.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,12 @@ document.addEventListener("DOMContentLoaded", function () {
234234
if (screen.width < 480) {
235235
let categoryHeaders = $(".filter-category-header .collapsible-content");
236236
let icons = $('.filter-category-header button .card-header-icon i');
237-
categoryHeaders.addClass("no-transition");
238-
categoryHeaders.css("max-height", "");
237+
categoryHeaders.addClass("no-transition collapsed");
239238
icons.removeClass(["far", "fa-window-minimize"]);
240239
icons.addClass(["fas", "fa-angle-down"]);
241-
categoryHeaders.removeClass("no-transition");
240+
241+
// Wait 10ms before removing this class, or else the transition will animate due to a race condition.
242+
setTimeout(() => { categoryHeaders.removeClass("no-transition"); }, 10);
242243
}
243244

244245
// If you click on the div surrounding the filter checkbox, it clicks the corresponding checkbox.

pydis_site/templates/resources/resources.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,9 @@
116116

117117
{# Checkboxes #}
118118
{% if filter_data.hidden %}
119-
<div class="collapsible-content">
119+
<div class="collapsible-content collapsed">
120120
{% else %}
121-
<div class="collapsible-content" style="max-height: fit-content;">
121+
<div class="collapsible-content">
122122
{% endif %}
123123
<div class="card-content">
124124
{% for filter_item in filter_data.filters %}

0 commit comments

Comments
 (0)