react-scroll-parallax <ParallaxProvider/> 到 div
react-scroll-parallax <ParallaxProvider/> to a div
我正在尝试使用此模块使 react-scroll-parallax 在 div 上工作:https://www.npmjs.com/package/react-scroll-parallax
我正在尝试将视差提供程序设置为不仅指向 body,而且指向特定的 div。我正在尝试引用元素(即 scrollContainer)。
挑战是我在页脚和 header 之间使用了 "scrolling div",所以在上面做视差是行不通的。
我尝试创建一个 ref 并引用它但没有成功。
文档说将元素引用为 ScrollContainer 的选项:
scrollContainer Element:可选地设置溢出的容器并将包含视差元素。默认为 HTML body
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
prop.
此外,您的 ref
需要在 ParallaxProvider
之外。
<div className="page-scroller site-wrapper pb-5" ref={this.myScrollDiv}>
<ParallaxProvider scrollContainer={this.myScrollDiv}>
///Content
</ParallaxProvider>
</div>
如果我错了,我会删除答案。
我正在尝试使用此模块使 react-scroll-parallax 在 div 上工作:https://www.npmjs.com/package/react-scroll-parallax
我正在尝试将视差提供程序设置为不仅指向 body,而且指向特定的 div。我正在尝试引用元素(即 scrollContainer)。
挑战是我在页脚和 header 之间使用了 "scrolling div",所以在上面做视差是行不通的。
我尝试创建一个 ref 并引用它但没有成功。
文档说将元素引用为 ScrollContainer 的选项: scrollContainer Element:可选地设置溢出的容器并将包含视差元素。默认为 HTML body
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
prop.
此外,您的 ref
需要在 ParallaxProvider
之外。
<div className="page-scroller site-wrapper pb-5" ref={this.myScrollDiv}>
<ParallaxProvider scrollContainer={this.myScrollDiv}>
///Content
</ParallaxProvider>
</div>
如果我错了,我会删除答案。