Wave animations in Webflow can de-sync on second loads due to timing issues, page transition scripts, or interactions not resetting properly. Here’s how to troubleshoot and resolve the issue.
1. Check Page Load Interactions
- Go to Page Settings and inspect any Page Load animations or Initial State settings used with the wave element.
- Ensure the animation is set to restart or replay on each page load.
- If using Webflow’s Page Trigger → When page finishes loading, verify that the wave animation timeline plays from the start each time.
2. Review Webflow Interactions (IX2) Timing
- Navigate to Interactions (lightning bolt icon) and review the wave animation.
- If the animation is time-based but does not reset on re-entry, click the animation and ensure:
- Looping is consistent, or
- You’ve added a Start from Initial State action at the beginning of the timeline.
3. Avoid Persisting States with Page Transitions
- If you're using third-party page transition scripts (like Barba.js or Swup), they might prevent a full reload of the DOM.
- These scripts can cause Webflow’s native animations to not re-initialize correctly.
- To fix it:
- Either disable page transition behavior (ensure a full page reload), or
- Re-trigger the wave animation manually using
Webflow.require('ix2').init();
after the new content loads (only if you're customizing via code).
4. Add JavaScript Reset (If Needed)
- If the wave is using a custom CSS animation or JS, make sure its state is reset each time the page loads.
- For example, JavaScript can be used to remove and re-add a CSS class to re-trigger an animation on second load.
- This should only be done if Webflow interactions alone can’t solve the problem.
5. Preload and Sync Timing on Assets
- If the wave uses preloaded SVGs, Lottie, or video as part of the animation:
- Ensure they are fully loaded before the animation starts.
- Use a delay or set up a custom “when asset is loaded” trigger before playing.
Summary
To fix wave animation desync on second load, ensure your interactions reset properly, avoid AJAX transitions that bypass animation reinitialization, and consider re-triggering animations via Webflow's interaction system or JavaScript if custom behavior is used.