GoTop.js
877 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import React, { useState, useEffect } from "react";
const GoTop = () => {
const [showScroll, setShowScroll] = useState(false);
useEffect(() => {
window.addEventListener("scroll", checkScrollTop);
return function cleanup() {
window.removeEventListener("scroll", checkScrollTop);
};
});
const checkScrollTop = () => {
if (!showScroll && window.pageYOffset > 100) {
setShowScroll(true);
} else if (showScroll && window.pageYOffset <= 100) {
setShowScroll(false);
}
};
const scrollTop = () => {
window.scrollTo({ top: 0, behavior: "smooth" });
};
return (
<>
<div
className="go-top"
onClick={scrollTop}
style={{
display: showScroll ? "block" : "none",
}}
>
<i className="ri-arrow-up-s-line"></i>
</div>
</>
);
};
export default GoTop;