Я создаю одностраничный веб-сайт и хочу использовать ссылки, чтобы указать коду, где прокручивать при нажатии кнопки. Эти кнопки должны прокручиваться к определенной c части веб-сайта. Я использую этот код для прокрутки до указанного c div ref в окне. В частности, я вызываю scrollToRef()
, чтобы перейти к div homeRef. Есть ли способ передать параметр ref в scrollToRef()
, чтобы я мог указать, к какому ref прокручивать?
class App extends Component {
constructor(props) {
super(props);
this.aboutRef = React.createRef();
this.demoRef = React.createRef();
this.homeRef = React.createRef();
}
scrollToRef = () => window.scrollTo(0, this.homeRef.current.offsetTop);
render() {
return (
<div className="home-page">
<header className="home-page-header">
<div className="home-page-logo">
<img src={logo} alt="company logo" width="200vh" height="40" />
</div>
<ul className="home-page-links">
<li><button onClick={this.scrollToRef}>Home</button></li>
<li><button >About</button></li>
<li><button >Demo</button></li>
<li><button>Contact</button></li>
</ul>
</header>
<div className="home-page-background" ref={this.homeRef}>
<section className="website-links">
<div>
<button >Home</button>
</div>
<div>
<button >Demo</button>
</div>
</section>
</div>
<div className="about" ref={this.aboutRef}>
<ul>
<li className="orange">
<div>
<h1>Lorem ipsum</h1>
<h3>lorem ipsum lorem ipsum lorem ipsum</h3>
</div>
<div>
<img src={blank} />
</div>
</li>
<li className="blue">
<div>
<img src={blank} />
</div>
<div>
<h1>Lorem ipsum</h1>
<h3>lorem ipsum lorem ipsum lorem ipsum</h3>
</div>
</li>
<li className="orange">
<div>
<h1>Lorem ipsum</h1>
<h3>lorem ipsum lorem ipsum lorem ipsum</h3>
</div>
<div>
<img src={blank} />
</div>
</li>
<li className="blue">
<div>
<img src={blank} />
</div>
<div>
<h1>Lorem ipsum</h1>
<h3>lorem ipsum lorem ipsum lorem ipsum</h3>
</div>
</li>
</ul>
</div>
<div className="virtual-demo" ref={this.demoRef}>
<h1>Demo</h1>
<figure>
<img src={blank} />
<figcaption>Testing image</figcaption>
</figure>
</div>
</div>
);
}
}