实现:回到顶部

回到顶部是常见功能,在项目中也有碰到过。实现并不难,记录一波。
demo: https://github.com/laputaz/scrollTop

回到顶部

在页面右下角会固定一个图标,点击后回到顶部。

示例

Demo: https://github.com/laputaz/scrollTop

实现思路,有几种方式:

  1. document.documentElement.scrollTop,一直减少,直到为 0
1
2
3
4
5
6
7
8
9
10
11
12
// 第一种 ScrollTop
function byScrollTop() {
let oldVal = document.documentElement.scrollTop
if (!oldVal) return
let timer = setInterval(() => {
document.documentElement.scrollTop = oldVal = oldVal - 50
if (oldVal <= 0) {
window.clearInterval(timer)
console.log('finish')
}
})
}
  1. document.documentElement.scrollIntoView 方法,自带 smooth 动画
1
2
3
4
5
6
7
// 第2种 ScrollIntoView
function byScrollIntoView() {
document.documentElement.scrollIntoView({
behavior: 'smooth',
})
console.log('finish')
}
  1. window.scrollBy
1
2
3
// window.scrollBy(x-coord, y-coord); x y 分别偏移
// 第3种 scrollBy
window.scrollBy(0, -document.documentElement.scrollTop)

以上。