import React, { useRef } from 'react'
const scrollToRef = (ref) => window.scrollTo(0, ref.current.offsetTop)
// General scroll to element function
const ScrollDemo = () => {
const myRef = useRef(null)
const executeScroll = () => scrollToRef(myRef)
return (
<>
<div ref={myRef}>I wanna be seen</div>
<button onClick={executeScroll}> Click to scroll </button>
</>
)
}
import React, { useRef } from 'react'
const scrollToRef = (ref) => window.scrollTo({ top: ref.current.offsetTop, behavior: "smooth" })
// General scroll to element function
const ScrollToSection = () => {
const sectionRef = useRef(null)
const executeSectionScroll = () => scrollToRef(myRef)
return (
<>
<div ref={sectionRef}>I wanna be seen</div>
<button onClick={executeSectionScroll}> Click to scroll </button>
</>
)
}
class ReadyToScroll extends Component {
constructor(props) {
super(props)
this.myRef = React.createRef()
}
render() {
return <div ref={this.myRef}></div>
}
scrollToMyRef = () => window.scrollTo(0, this.myRef.current.offsetTop)
// run this method to execute scrolling.
}
import { HashLink } from 'react-router-hash-link';
<HashLink smooth to="/path#hash">
Link to Hash Fragment
</HashLink>;