GSAP Animation Break after Filtering

Hi everyone,

I’m reposting this question because I haven’t received a response yet and I’m a bit stuck haha.

Previous topic for context:
https://forum.bricksforge.io/t/issue-gsap-animations-break-after-ajax-filtering-bricks-bricksforge/3555/5

Issue:
I’m using Bricks Query Filters together with Bricksforge GSAP timelines on a query loop.
When the filter changes, the query loop is re-rendered via AJAX. After that, my GSAP animations (especially click/menu animations) start to glitch — it feels like old timelines or listeners remain active while new ones are initialized.

Website link:
https://biel.flowvee.studio/cases

The animation works correctly on first page load, but breaks after filtering (for example when switching to “Branding”).

I’m using the latest versions of Bricks and Bricksforge.

Is there a recommended Bricksforge best practice for handling GSAP animations on dynamically re-rendered query loops (cleanup / re-init on AJAX)?
Any help would be greatly appreciated, as I can’t seem to figure this out on my own.

Thanks in advance, and happy New Year! :tada::grinning_face_with_smiling_eyes:

Hmm.. in my tests (different browsers), everything runs smooth on your site - even after switching the tabs a few times… where so I need to take look? :slight_smile:

Hi Daniele,

Thanks for your response!

On my end, the menu glitches at the bottom of the screen. I recorded a short video to show the issue:
https://youtu.be/lhBTodiWFCg

When I test the panel using a normal ‘post element’ click, everything works as expected. However, the issue occurs when I use the “Filter – Radio” element , that’s when the menu animation starts glitching.

I hope this provides enough context to understand the problem.

Thanks again! :blush:

Hey Tobias,

We have assigned high priority to this problem over the past few weeks and were finally able to find a good solution for it.

In the next update, the issue will be resolved and the animations in the filters will work flawlessly. :slightly_smiling_face: