首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gsap时间线

gsap时间线
EN

Stack Overflow用户
提问于 2022-02-06 20:38:49
回答 3查看 1.1K关注 0票数 0

我对gsap很陌生,并且尝试在上面做一些动画,但是当我将gsap设置到我的头上时,它就不工作了。这是我的代码:

代码语言:javascript
复制
import { gsap } from "gsap";

  let tl = gsap.timeline();

  useEffect(() => {
    tl.from(".lastHeader", { y: 50, duration: 1 });
  }, []);

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2022-02-22 07:57:36

代码语言:javascript
复制
import { gsap } from "gsap";

tl = useRef()

  useEffect(() => {
    tl.current = gsap.timeline();
    .from(".lastHeader", { y: 50, duration: 1 });
  }, []);

你可以用这样的代码。

票数 0
EN

Stack Overflow用户

发布于 2022-06-13 06:44:43

为了避免在每次渲染中创建新的时间线,在效果中创建时间线并将其存储在ref中是很重要的。

这也将允许你以不同的效果访问时间线。

参见这里的示例:

代码语言:javascript
复制
function App() {
  const el = useRef();
  const q = gsap.utils.selector(el);
  const tl = useRef();
      
  useEffect(() => {            
    
    tl.current = gsap.timeline()
      .to(q(".box"), {
        rotate: 360
      })
      .to(q(".circle"), {
        x: 100
      });

  }, []);
  
  return (
    <div className="app" ref={el}>
      <Box>Box</Box>
      <Circle>Circle</Circle>
    </div>
  );
}

更多信息在这里:https://greensock.com/react/

票数 0
EN

Stack Overflow用户

发布于 2022-10-28 14:00:41

您必须在timeLine之外定义useLayoutEffect变量。

代码语言:javascript
复制
const comp = useRef(null);
const tl = useRef<gsap.core.Timeline | null>(null);

useLayoutEffect(() => {
  const ctx = gsap.context(() => {
    tl.current = gsap
      .timeline()
      .from("your-element", {
        duration: 4,
        delay: 0.4,
        opacity: 0,
        y: 200,
        ease: "power3.inOut",
      })
     }, comp);
     return () => ctx.revert(); // cleanup
 }, []);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71011441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档