reactjs - 如何使用 react-router 在单页应用程序中单击按钮滚动到特定的 div?
问题描述
我在我的标题中有两个按钮(主页,联系我们),并且我在同一页面上的一个 div 中有“主页和联系我们”的内容,当我点击主页或联系按钮时,它应该使用React滚动到那个特定的 div -路由器 由于我对这些概念不熟悉,我找不到正确的解决方案。
解决方案
你为什么要React-Router
这个?
你不能直接将按钮包装到<a>
标签中,并提供一个href
属性来<a>
标记id
你想要滚动的部分。
例如
<a href="#home"><button>Home</button></a>
在你组件的某个地方,
<div id="home">
...
</div>
为了平滑滚动效果,您可以添加此 css,
html{scroll-behavior:smooth}
更新
在评论的基础上,您可以使用react-router-hash-link
.
yarn add react-router-hash-link
or
npm install --save react-router-hash-link
// 在 YourComponent.js 中
...
import { HashLink as Link } from 'react-router-hash-link';
...
// 像 RRv4 一样使用它(可以是字符串或对象,详见 RRv4 api):
<Link to="/some/path#with-hash-fragment">Link to Hash Fragment</Link>
推荐阅读
- css - 具有多个 Webpack 入口点的多个 Tailwind CSS 类
- python - Python Heun 有限差分
- matlab - 将空间中的椭圆点映射到二维平面
- solidity - Solidity:标识符未找到或不唯一
- javascript - 以下代码如何逐步工作?
- node.js - 安全 HLS AES-128 密钥 URI
- python - Python pyserial-仅在不同时读取串行?
- keycloak - 应用策略执行器时连接被拒绝 Keycloak
- python - Discord bot 通过内置命令发送带有图像的文本消息(Python;可以用另一种语言重做)
- go - 协议不创建服务