React 组件平滑滚动到顶部
在现代博客网站上,尤其是那些需要 15 分钟阅读时间的博客网站上,很少能找到一个可以平滑滚动到页面顶部的按钮!
然而,每当我遇到它时,我总是倾向于使用它,并欣赏这个具有如此特殊功能的简单按钮的优雅。
在仔细阅读Stack Overflow和GitHub 上的解决方案后,我偶然发现了一个使用 Hooks 的优雅 React 组件,并想与社区分享它!
以下是我们组件的测试用例:
- 按钮应始终位于页面右下角
- 按钮应该隐藏,并且只有当我们滚动到一定高度时才显示
- 点击它后,我们应该顺利地转到页面顶部
Hook组件实现了以下功能。
import React, { useEffect, useState } from "react";
export default function ScrollToTop() {
  const [isVisible, setIsVisible] = useState(false);
  // Top: 0 takes us all the way back to the top of the page
  // Behavior: smooth keeps it smooth!
  const scrollToTop = () => {
    window.scrollTo({
      top: 0,
      behavior: "smooth"
    });
  };
  useEffect(() => {
    // Button is displayed after scrolling for 500 pixels
    const toggleVisibility = () => {
      if (window.pageYOffset > 500) {
        setIsVisible(true);
      } else {
        setIsVisible(false);
      }
    };
    window.addEventListener("scroll", toggleVisibility);
    return () => window.removeEventListener("scroll", toggleVisibility);
  }, []);
//scroll-to-top classes: fixed, bottom:0, right:0
  return (
    <div className="scroll-to-top">
      {isVisible && (
        <div onClick={scrollToTop}>
          <h3>Go up!</h3>
        </div>
      )}
    </div>
  );
}
快完成了!只需将此组件导入到你的 React 文件中,并将其粘贴到最后即可。
瞧,它应该可以工作了!
这是一个关于它应该如何运作的基本、快速且丑陋的演示!
文章来源:https://dev.to/prnvbirajdar/react-hooks-component-to-smooth-scroll-to-the-top-35fd 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com
          