javascript - 我正在尝试使用反应应用滚动到每个页面的顶部
问题描述
当我导航到项目中的另一个页面时遇到问题。它从大约一半开始,然后滚动到页面顶部。我希望它在页面顶部自动打开,然后能够向下滚动以查看页面的其余部分。这是我当前滚动到顶部的代码:
import { useEffect } from "react";
import { useLocation } from "react-router-dom";
export default function ScrollToTop() {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
}
解决方案
您可以使用 的选项版本来指定滚动行为window.scrollTo
。
一个枚举,其值可以是以下之一:
- 平滑:滚动动画平滑。
- auto:滚动发生在一次跳转中。
import { useEffect } from "react";
import { useLocation } from "react-router-dom";
export default function ScrollToTop() {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo({
left: 0,
top: 0,
behavior: 'auto', // <-- The scrolling happens in a single jump
});
}, [pathname]);
return null;
}
推荐阅读
- angular - 动态改变提供者的价值
- mysql - 如何从 django 的前端在表中添加一列
- java - 如何使用 JPA 中的规范连接多个列?
- scala - 如何使用 Apache Spark 和 Scala 创建嵌套 json
- android - 在 gradle 中添加 appcompat-v7 不会自动将我的布局视图切换到 AppCompat 版本
- events - 如何在 servicenow 的日历中查看事件“我的日程安排”
- c++ - 访问旧堆栈帧
- c# - 如何在 Visual Basic 中从 C# 转换对象
- jquery - 在动态表上对 Jquery Datatable 进行自定义排序
- javascript - 如何在 reactjs 中有一个粘性导航栏