Jump to content

Search In
  • More options...
Find results that contain...
Find results in...

chrisgannon last won the day on March 26 2014

chrisgannon had the most liked content!


  • Content Count

  • Joined

  • Last visited

  • Days Won


chrisgannon last won the day on March 26 2014

chrisgannon had the most liked content!

Community Reputation

216 Specialist

About chrisgannon

  • Rank
    Advanced Member

Contact Methods

Profile Information

  • Gender

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Wow this is 7 years old! Back then we had to add everything inside css:{}
  2. Please remember to include the full license if you use this (my work) in your project 👍
  3. My idea to just use it in the same way as it's already used: gsap.timeline({ defaults: { ease: 'circ' } }); tl.to('#a, #b', { keyframes: [ { ... }, { ... } ] }) I think both approaches have their upsides although I would be reluctant to add more special properties given the framework already has syntax to handle multiple targets. I do like the fact your suggestion supports from and fromTo though
  4. I would love to be able to use keyframes with different targets. @GreenSock
  5. This smells like someone forgot the new default duration in GSAP 3.x is 0.5 and not 1!
  6. It seems there's typo in the docs - it should be tween.pause(0.25); - this generates the correct logged values.
  7. Seems delay is being ignored when I set timeScale on a timeline.
  8. Cheers Jack - I'll give it a whirl
  9. I would like to use the onStartevent of a timeline to do something when you start scrolling a ScrollTrigger animation. I've noticed that before any interaction at all, onEnterfires once and onStart fires 3 times. I think I understand why onEnter fires but I was only expecting onStart to fire once you start scrolling. Any ideas? Update: I've just noticed onStart also fires when I resize the browser window too.
  10. Cheers Jack - just glad I'm not going mad.
  11. I've either misunderstood what gsap.utils.random does or it's spitting out the wrong values. Click the pen and a random value will display. My understanding was that it will choose values between 0 and 100,000 (in this case). But it actually displays negative values too. If I put a snapping number in, like 1, (gsap.utils.random(0, 100000, 1)) it picks values from the correct range (but I don't get decimals).
  12. Here's a slightly different approach to stagger using separate Card components: https://codepen.io/chrisgannon/pen/670fe4387dba87db9632440da8d262b8 Just by changing one value (numCards) you can have as many as you want.
  13. What you see there was some software I was developing that was a progression from a more convoluted process involving motion tracking. I was never very happy with the results and ended up using my initial process which I'll describe. So this initial process involved several steps using different software. I never posted the steps because it was really complicated and had a lot of quirks. If I remember correctly, I generated tracking data using Mocha inside After Effects. I then wrote a parser to convert it to a corner pin data format (basically an array of X and Y vecto
  14. Old post but here's a useful link: https://path2bezier.netlify.com/ Oops just noticed it's mentioned above! Must be good then...
  15. Ok I think I have found a solution. myTimeline.labels returns an object whose keys are the label name and whose properties are their time. E.g. {labelName:12, otherLabelName: 23} So if you want the parent timeline to play from the child timeline's previous label you could write something like: parentTl.play( childTl.labels[childTl.previousLabel()] );