css GSAP ScrollTrigger不适用于我的框

qvtsj1bj  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(275)

我正在学习GSAP,我想让一些元素在滚动时滑到视图中,我找到了一个GSAP的ScrollTrigger插件。但是,它不起作用。向上滚动时它会滑回来,但是向下滚动时,什么都没有显示。

import { useLayoutEffect, useState } from "react";
import reactLogo from "./assets/react.svg";
import "./App.css";
import gsap from "gsap";
import styled from "styled-components";

import { ScrollTrigger } from "gsap/dist/ScrollTrigger";
gsap.registerPlugin(ScrollTrigger);

const Container = styled.div`
  height: 4000px;
`;

function App() {
  const [count, setCount] = useState(0);

  useLayoutEffect(() => {
    gsap.from(".box", {
      scrollTrigger: {
        trigger: ".box",
        start: "top center",
        end: "bottom center",
        scrub: true,
        markers: true,
      },
      x: -1500,
      opacity: 0,
    });
  }, []);

  return (
    <>
      <Container>Hello World</Container>
      <div
        className="box"
        style={{ backgroundColor: "red", width: 300, height: 300 }}
      ></div>
      <Container></Container>
    </>
  );
}

export default App;
9njqaruj

9njqaruj1#

我注意到了几个问题:
1.您导入的是常规的gsap模块(很好),但是您导入的是非模块的ScrollTrigger(从/dist/目录)。您应该只从“gsap/ScrollTrigger”导入ScrollTrigger(或者从/dist/导入gsap和ScrollTrigger-只要保持一致即可)。
1.您可能会被React在strict模式下对useLayoutEffect()的双重调用所困扰,这会使“from()”tweens变得混乱。使用gsap.context()很容易解决这个问题,我们强烈推荐在任何React环境中使用gsap.context()。
请在此处阅读有关在React中使用GSAP的文章:https://greensock.com/react
它还演示了如何使用gsap.context()。
如果您仍然有问题,请随时在https://greensock.com/forums的论坛上发布,并附上一个最小的演示,我们很乐意看一看并回答任何与GSAP相关的问题。
补间快乐!

相关问题