如何让 GSAP 选取框项目立即更改行,而不是等待所有项目完成动画?
How to make GSAP marquee item change line immediately, not waiting all items finished animation?
我是Oliver,网络动画小白,这两天在做gsap marquee side project,建了500个dom盒子作为沙箱url:
我有几个问题:
1.I使用setTimeout将每一个盒子分隔成一个唯一的时间轴动画,这样单个盒子动画可以在最后一行完成后立即转到另一行,而不是等待其他499个盒子在同一时间完成如果我使用 属性 stagger.
行
这种方法会产生500个时间轴实例,看来不是个好主意,有没有什么方法可以在一个或几个时间轴中产生相同的动画?
2.If我在canvas做这样的动画,浏览器渲染效率会更好吗?
您应该避免将 setTimeout
与 GSAP 一起使用,因为最好使用 GSAP 来控制事物的时间。
在这种情况下,您或许可以利用 GSAP 的 staggers. You should also learn about the position parameter 时间线。如果您使用其中一个(或两者,取决于您需要的确切效果),您应该能够避免创建这么多时间线。
此外,您的动画没有响应。您可能希望使用具有时间轴失效功能的功能属性(补间的属性是功能,而不仅仅是硬数字)以使其响应。
我还强烈建议您在制作其中一些文章时阅读 the most common GSAP mistakes 文章。
至于使用 canvas 来渲染你的盒子,这可能取决于你的盒子是什么样的。在大多数情况下,使用 canvas 可能会更快,是的。但是,为这些框设置动画的缓慢部分本身与动画功能本身没有任何关系。它与渲染速度有关。一般来说,将一堆对象渲染为 canvas 比渲染一堆 DOM 元素要快。
我是Oliver,网络动画小白,这两天在做gsap marquee side project,建了500个dom盒子作为沙箱url:
我有几个问题:
1.I使用setTimeout将每一个盒子分隔成一个唯一的时间轴动画,这样单个盒子动画可以在最后一行完成后立即转到另一行,而不是等待其他499个盒子在同一时间完成如果我使用 属性 stagger.
行这种方法会产生500个时间轴实例,看来不是个好主意,有没有什么方法可以在一个或几个时间轴中产生相同的动画?
2.If我在canvas做这样的动画,浏览器渲染效率会更好吗?
您应该避免将 setTimeout
与 GSAP 一起使用,因为最好使用 GSAP 来控制事物的时间。
在这种情况下,您或许可以利用 GSAP 的 staggers. You should also learn about the position parameter 时间线。如果您使用其中一个(或两者,取决于您需要的确切效果),您应该能够避免创建这么多时间线。
此外,您的动画没有响应。您可能希望使用具有时间轴失效功能的功能属性(补间的属性是功能,而不仅仅是硬数字)以使其响应。
我还强烈建议您在制作其中一些文章时阅读 the most common GSAP mistakes 文章。
至于使用 canvas 来渲染你的盒子,这可能取决于你的盒子是什么样的。在大多数情况下,使用 canvas 可能会更快,是的。但是,为这些框设置动画的缓慢部分本身与动画功能本身没有任何关系。它与渲染速度有关。一般来说,将一堆对象渲染为 canvas 比渲染一堆 DOM 元素要快。