Skip to content

Latest commit

 

History

History
13 lines (10 loc) · 1.33 KB

README.md

File metadata and controls

13 lines (10 loc) · 1.33 KB

SVG Parallax Fjord - Built with Svelte

https://svelte.parallaxfjord.com/

My first attempt at this site was built with React. Svelte has some great animation centric functionality built into the framework and it works very nicely with SVGs out of the box. I rebuilt the project to get some practice with Svelte and to compare sizes of final output.

Some cool things about the project

  • No animation library added for Parallax effects. It uses svelte's convenient window binding to sync a scrollY variable with everything on the page, including the background transition.
  • Uses CSS variables from a derived value to accomplish background transition. Svelte doesn't currently allow local js variables to be used in CSS, but through this trick you can accomplish that goal.
    • I have since learned that CSS variables do not perform well when being recalculated, particularly when the element it is declared on has a lot of children. I've switched this to simple js variables that are read on the element for better performance
  • Built for up to 2560px resolution.
  • Uses svelte:component to cleanly loop over an array of objects with component values to make the code much more concise but also allows for easy reordering and a central place to update parallax speeds.
  • SVG morphing animations for trees blowing in the wind using snap-svg.