Ukrywanie buttona scroll-top jeżeli wysokość przekroczy 200 oraz dodanie obsługi zdarzenia na onClick i wywołanie funkcji scrollToTop i metody scrollIntoView.
export default BackToTop extends Component {
state = {
scrolling: false,
scrollPosHeight: 200
}
componentDidMount() {
console.log('componentDidMount()');
window.addEventListener('scroll', this.hideShowButtonTop);
};
componentWillUnmount() {
console.log('componentWillUnmount()');
window.removeEventListener('scroll', this.hideShowButtonTop);
};
hideShowButtonTop = () => {
const scrollPos = window.pageYOffset || document.documentElement.scrollTop;
const myDiv = document.querySelector('.back-to-top');
(scrollPos > this.state.scrollPosHeight && scrollPos !== 0) ? myDiv.style.display = 'block' : myDiv.style.display = 'none';
}
scrollToTop() {
const logoView = document.getElementById('logo');
logoView.scrollIntoView({
behavior: 'smooth'
})
}
render() {
return (
<div onClick={this.scrollToTop} className="back-to-top"></div>
)
};
};