React 如何实现平滑滚动?

来源:21-5 尝试写一个属于自己的 React 框架,ReMooc(三)

Doubles_Z3470738

2017-09-27

老师 请问有什么办法不借助与jQuery的animate, 使用类似ref的react的形式来实现平滑滚动?

目前做到的点击标签瞬间跳转到指定位置的方法如下:

1. scrollTo(0, 0)
2. <div id="pos">滚动到这里</div>
    ....
   <a href="#pos">点我滚动</a>
3.function handleScroll() {
  setTimeout(function() {
   var top = window.document.scrollTop;
   scrollTo(0, top - 50);
  }, 100);
}
<a href="#pos" onClick="handleScroll()">点我滚动</a>

但是如何能够做到不是瞬间而是有类似缓冲动画的滚动到指定位置呢? 

不知道我是表达的是否清楚, iOS类似的API是 - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

之前使用Vue的时候也遇到这个问题, 也没有很好的解决方法, 请老师指教.
写回答

1回答

Parry

2017-09-29

这种问题不需要自己造轮子啊,一搜索有一堆库的,https://www.npmjs.com/package/react-animate-on-scroll

0
1
Doubles_Z3470738
我找到了这个react-scroll 谢谢老师
2017-09-29
共1条回复

结合基础与实战学习React.js 独立开发新闻头条平台

轻松入门 React 开发,React Router 4 与 Webpack 2 完美升级项目

2768 学习 · 2126 问题

查看课程