微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 react-rellax-wrapper 停止视差React,Rellax

如何解决如何使用 react-rellax-wrapper 停止视差React,Rellax

我正在使用 react-rellax-wrapper 来做一些视差动画。我希望停止动画并在它在窗口中不可见时重置它。在 rellax.js 库的文档中,您可以使用 rellax.refresh();和rellax.destroy();方法,但由于我使用的是包装器版本,因此我不确定如何执行此操作。

这是我的代码https://codesandbox.io/s/simple-rellax-wrapper-4koe8

import "./styles.css";
import RellaxWrapper from "react-rellax-wrapper";
export default function App() {
  return (
    <div className="App">
      <div // i should run first,and stop running when im not visible
        style={{
          overflow: "hidden",height: "100vh",width: "100%",backgroundColor: "rgb(40,40,40)"
        }}
      >
        <RellaxWrapper speed={1} percentage={1}>
          <p>Test1</p>
        </RellaxWrapper>
        <RellaxWrapper speed={2} percentage={2}>
          <p>Test2</p>
        </RellaxWrapper>
        <RellaxWrapper speed={3} percentage={3}>
          <p>Test3</p>
        </RellaxWrapper>
      </div>
      <div // i should run second,backgroundColor: "rgb(60,60,60)"
        }}
      >
        <RellaxWrapper speed={1} percentage={1}>
          <p>Test1</p>
        </RellaxWrapper>
        <RellaxWrapper speed={2} percentage={2}>
          <p>Test2</p>
        </RellaxWrapper>
        <RellaxWrapper speed={3} percentage={3}>
          <p>Test3</p>
        </RellaxWrapper>
      </div>
      <div // i should run third,backgroundColor: "rgb(80,80,80)"
        }}
      >
        <RellaxWrapper speed={1} percentage={1}>
          <p>Test1</p>
        </RellaxWrapper>
        <RellaxWrapper speed={2} percentage={2}>
          <p>Test2</p>
        </RellaxWrapper>
        <RellaxWrapper speed={3} percentage={3}>
          <p>Test3</p>
        </RellaxWrapper>
      </div>
    </div>
  );
}

当滚动位置低于其容器时,第一个rellax div应停止运行,当滚动位置高于其容器时,最后一个rellax div应停止运行。

如果使用 rellax-wrapper 库无法做到这一点,您有替代品吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。