前言
在开发过程中,一定会遇到需要返回顶部的操作,很多人都会直接返回顶部,就像跳转一样,降低了很大的体验,以下代码则是可以让你的返回顶部变得丝滑起来。
实现
不论是原生,还是vue、react,此方法都是适用的,直接复制到方法里即可
// 到顶部完成时间 0.5秒
let finished_time = 500;
// 每0.01秒向上运动一次
let interval_time = 10;
// 当前位置距离顶部距离
let scrollTop = window.pageYOffset;
// 计算每次间隔向上滑动多少像素
let top_pixel = scrollTop / finished_time * interval_time;
// 通过定时器进行间隔向上滑动
let timer = setInterval(() => {
scrollTop -= top_pixel;
// 为负数,浏览器会不处理得
window.scrollTo(0, scrollTop);
if (scrollTop <= 0) {
clearInterval(timer)
}
}, interval_time)