React如何实现的锚点功能,同时又不触发router的功能

#1

点击相应的字母会跳到相应的地方,但是也会触发router ,
比如锚点到x,同样会触发到/x的router找不到的错误提示。

#2

这个问题很好啊,帮忙顶下。
我的思路,如果用hashHistory的话,这个可能无解。你只能换种实现方式,比如#/chooseCity?anchor=shanghai
然后通过query拿到anchor,接着dom的计算,拿到对应的dom元素的位置,最后设置style.scrollTop。

如果用browserHistory那当然最好了,就可以直接使用锚点了,不过需要后台渲染的结合。

1 Like
#3

通过 window.scrollY || window.scrollTop 得到高度,直接 scrollTo

如果想要有动画滚动的效果,用 jump.js

#4

可以使用antd 的瞄点功能。 https://ant.design/components/anchor-cn/#components-anchor-demo-fixed 里面有栗子.

#5

很醉这种动不动就扔出antd的回答。。。人家问的是这个技术,难道为了一个锚点单独再引入整个antd?

#6

大神你牛逼… 有造好的轮子为什么要去折腾

#7

。。。。。你这让我很无语,去问问你们前端负责人,会不会让你因为一个输入框就引入一套完整的控件库