Scroll animations! How to add a flowing path like the Lusion site with SVG and Javascript

Поділитися
Вставка
  • Опубліковано 4 лют 2025

КОМЕНТАРІ • 34

  • @riklomas
    @riklomas Рік тому +17

    I had Covid when I filmed this so go easy on me, my voice was a bit fried!

    • @televisie456
      @televisie456 Рік тому +3

      I didn't even notice! But the sympathy likes are in!

  • @MrAbbo11
    @MrAbbo11 6 місяців тому

    you are an excellent teacher and clearly a very smart man as you distill things in a way that is easily accessible. Thank you!

  • @roguegoblin2407
    @roguegoblin2407 Рік тому +1

    Some time ago I was asked if I could replicate something similar for a friend's website, and I had no clue back then, now I know hehe
    great video!

    • @SuperHi
      @SuperHi  Рік тому +1

      Thank you! Yeh it's a non-obvious way to do it, I don't think most people would instantly think to go for a dashed path in SVG!

  • @mikefrancis9424
    @mikefrancis9424 7 місяців тому

    This was awesome - thank you! I had a lot of fun repurposing this for a remix app!

  • @clangsison
    @clangsison 4 місяці тому

    learned a lot from this tutorial, thank you!

  • @SarahSCampos
    @SarahSCampos 6 місяців тому

    Thank you so much, that was exactly what I needed!

  • @monicaalyssa7195
    @monicaalyssa7195 2 місяці тому

    Thank you! This was super helpful!!!!

  • @krist3nnxo
    @krist3nnxo Рік тому +1

    SuperHi forever!!!

    • @SuperHi
      @SuperHi  Рік тому

      And ever and ever and ever

  • @Tony.Nguyen137
    @Tony.Nguyen137 11 місяців тому

    I love animations, but i am so bad at it, pls more videos like this 😊❤

  • @playinhertz
    @playinhertz 5 місяців тому

    Your portfolio is really amazing. Can you make a video on how you made it . Pls much requested

  • @SteveHart282
    @SteveHart282 3 місяці тому

    How do you achieve the gradient they have on Lusion using an SVG? Great video!

  • @aminemajdi1248
    @aminemajdi1248 4 місяці тому

    Thank you very much

  • @stevevoltmer2964
    @stevevoltmer2964 2 місяці тому

    How would you do this using the intersectionObserver API instead of scroll?

  • @jesperandreassen120
    @jesperandreassen120 5 місяців тому

    Great video! How would you go about having the animation "bounce" the end of the stroke when the user stops scrolling?

  • @stevevoltmer2964
    @stevevoltmer2964 2 місяці тому

    What about responsiveness? If you have content on the page and resize the window the SVG resizes, but not the content. You end up with the path moving over important content.

  • @Pywyoyuyp
    @Pywyoyuyp 5 місяців тому

    Thank you so much, I really enjoyed this tutorial. But I have a problem and that is when I scroll to the bottom of the page , when the line finishes drawing itself, it disappears. When I scroll a little up, it is again there, scrolling itself backways as it should. but i don't want it to disappear from my view. How to fix this?

  • @tanppangi
    @tanppangi Рік тому

    Thanks for sharing the amazing tutorial and hope you at least got better now! 😢

    • @SuperHi
      @SuperHi  Рік тому

      Thank you! I'm feeling better now, still positive currently but back to normal

  • @maazahsan1800
    @maazahsan1800 3 місяці тому

    Cna anyone work on the section look like video effect section in lusion website?

  • @MillerThriller
    @MillerThriller 8 місяців тому

    Can this be replicated into wix studio? I’ve been trying to figure this out forever! Any help is greatly appreciated and compensated if needed.

  • @jbent-nextwave145
    @jbent-nextwave145 Рік тому

    Well done sir. I never comment.

  • @jukasole
    @jukasole 10 місяців тому

    hope you got better😊😊 i cant find a way to display my jpgs anyone had the same problem? what should i replace* in 'repeat(3,1fr*);' with?

  • @ricksanchez-c-137
    @ricksanchez-c-137 10 місяців тому

    I tried to make this but in horizontal scrolling section and it doesnt work with all changes i tried. Someone have any ideas to solution ? :D

  • @sarahmatos7777
    @sarahmatos7777 Рік тому

    Great tutorial, thank you Rik, thank you SuperHi team, you're the best!
    I have a question! How can we set the svg height so it covers the whole page? When I try to make it bigger, like 500vw, it starts far from the top, so when I get to this point, the javascript had been activated already and I can not see the animation, just the image already 'loaded'.
    So I thought about having 2 svgs, and when the first one finishes, the second one starts. If it finishes at the right side, the other one starts from it too.
    Problem is, the second svg must be top: 210vw, so I need to start its javascript at 220vw pixels from the top.
    I thought I could use something like:
    window.onscroll = function() {scrollFunction()};
    function scrollFunction() {
    if (document.body.scrollTop == 210vw) {
    scroll2()
    window.addEventListener("scroll", scroll2);
    }
    }
    Any ideas or suggestions?
    Thank you!

    • @SuperHi
      @SuperHi  Рік тому

      Hey Sarah, I just realized I never posted my reply to you! I had it ready but didn't send!
      For the SVG, you should look up the preserveAspectRatio attribute - you may want something like preserveAspectRatio="xMidYMid slice" so that some of the paths are off the page, similar to how background-size cover looks.
      Another potential way is to have a few different aspect SVG and then use a loop to animate them all, but then use CSS to show based on a rough aspect ratio based on a media query. You prob don't need to change the JS too much to get it working!

    • @sarahmatos7777
      @sarahmatos7777 Рік тому

      @@SuperHi hey Rik, I'm sorry, I haven't got any notifications about your answer.
      Thank you so much for the all the tips, I'll follow your suggestions :-)

  • @InfiniteLightAura
    @InfiniteLightAura Рік тому

    Hope you get better soon :

    • @SuperHi
      @SuperHi  Рік тому

      Thank you! I'm getting better now, still positive right now, but feeling fine!

  • @Strix_sqli
    @Strix_sqli 6 місяців тому

    i dont think they did it with svg on their website

  • @klemenivanusic
    @klemenivanusic Місяць тому

    const svg = document.querySelector('svg.squiggle');
    const path = svg.querySelector('path');
    // Get the total length of the path
    const pathLength = path.getTotalLength();
    // Initialize the path to be hidden
    path.style.strokeDasharray = `${pathLength}`;
    path.style.strokeDashoffset = `${pathLength}`;
    const scroll = () => {
    const distance = window.scrollY;
    const totalDistance = document.body.clientHeight - window.innerHeight;
    const percentage = distance / totalDistance;
    // Animate the strokeDashoffset to reveal the path
    path.style.strokeDashoffset = `${pathLength * (1 - percentage)}`;
    };
    // Run the scroll function on page load to set initial values
    scroll();
    // Add the scroll event listener
    window.addEventListener('scroll', scroll);
    This is the better version of the code. Try it. Path basically starts from 0 when page is loaded and it is not drawn yet, and when you reach the bottom of the page, the path reaches it's 100% length. It works even if you set it's boundaries to a specific container, just set the environment for the path in the totalDistance variable

    • @thomas76ch
      @thomas76ch 10 днів тому +1

      Thanks, with you svg works really well. I try it only with a straight line. It is not as smooth as on your example... and the result is reverse! Is there any info how to solve this issue?