Thank you for reply
My first idea was to make timeline for opening and if i want to close it, just reverse timeline. But it messed up css styles.
Something like this works just fine until I want to collapse accordion.
accordion.trigger.addEventListener("click", () => {
let closedPanelsState = Flip.getState(panels);
accordion.classList.add("expanded");
let expandAccordionTimeline = gsap.timeline();
expandAccordionTimeline.add(Flip.from(closedPanelsState));
expandAccordionTimeline.to(accordion.content, {
height: "auto",
});
});
I need some way to go back in its initial state. When I reverse timeline It looks same but i has this css styles:
Next problem is removing class "expanded" after revesing timeline. This class is state changer for accodrion position for FLIP.
https://codepen.io/darkfly/pen/wvrGvLr
My next idea was to make a new timeline to collapse accoridion:
if (accordion.classList.contains("expanded")) {
let collapseAccordionTimeline = gsap.timeline();
collapseAccordionTimeline.to(accordion.content, {
height: "0px",
});
accordion.classList.remove("expanded");
collapseAccordionTimeline.add(Flip.from(closedPanelsState));
return;
}
It is working but animations are not smooth: https://codepen.io/darkfly/pen/yLzOyNQ