gpt4 book ai didi

javascript - react-scroll-parallax 到一个 div

转载 作者:行者123 更新时间:2023-11-28 02:21:26 24 4
gpt4 key购买 nike

我正在尝试使用此模块使 react-scroll-parallax 在 div 上工作:https://www.npmjs.com/package/react-scroll-parallax

我正在尝试将视差提供程序设置为不仅指向主体,而且指向特定的 div。我正在尝试引用元素(即 scrollContainer)。

挑战在于我在页脚和页眉之间使用“滚动 div”,因此在 上设置视差是行不通的。

我尝试创建一个 ref 并在没有成功的情况下引用它。

文档说将元素作为 ScrollContainer 的选项进行引用:scrollContainer Element:可选地设置溢出的容器并将包含视差元素。默认为 HTML 正文

 constructor(props) {
super(props);
this.myScrollDiv = React.createRef();
}

/////////////////



<ParallaxProvider scrollContainer={this.myScrollDiv.current}>
<div className="page-scroller site-wrapper pb-5" ref={this.myScrollDiv}>
///Content
</div>
</ParallaxProvider>

I would love for the .page-scroller div to handle parallax.

最佳答案

免责声明:我从未使用过react-scroll-parallax 库。答案是基于源代码。

欢迎来到 Stack Overflow,@stephanesng 👋

当我查看源代码时,我发现了一个 Storybook code snippet .

看起来您需要传递 ref 变量本身,而不是 ref.current

export default class ScrollContainer extends React.Component {
static defaultProps = {
scrollAxis: 'vertical',
};

constructor() {
super();
this.state = {
scrollContainer: null,
};
this.scrollContainer = React.createRef();
}

componentDidMount() {
this.setState({ scrollContainer: this.scrollContainer.current });
}

render() {
return (
// ............ You pass the `ref` not `ref.current` 👇
<div className="scroll-container" ref={this.scrollContainer}>
<ParallaxProvider
scrollContainer={this.state.scrollContainer}
scrollAxis={this.props.scrollAxis}
>
{this.props.children}
</ParallaxProvider>
</div>
);
}
}

这意味着,您需要将 this.myScrollDiv 而不是 this.myScrollDiv.current 传递给 scrollContainer 属性。

此外,您的 ref 需要在 ParallaxProvider 之外。

<div className="page-scroller site-wrapper pb-5" ref={this.myScrollDiv}>
<ParallaxProvider scrollContainer={this.myScrollDiv}>
///Content
</ParallaxProvider>
</div>

如果我错了,我会删除答案。

关于javascript - react-scroll-parallax <ParallaxProvider/> 到一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57367574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com