使用scrollTop和scrollTo滚动到目标位置
在JavaScript中,scrollTo和scrollTop属性通常用于控制和获取元素的滚动位置。
# scrollTop
scrollTop属性表示元素内容垂直滚动的像素值。可以读取这个属性来获取当前元素滚动到的位置,也可以设置这个属性来滚动到指定位置。
示例:
// 获取当前滚动位置
var currentScroll = document.documentElement.scrollTop;
// 滚动到指定位置
document.documentElement.scrollTop = 500; // 滚动到距离顶部500像素的位置
1
2
3
4
5
2
3
4
5
使用scrollTop可以设置滚动位置,但因为是通过dom来设置的,所以过渡动画对该属性是无效的
# scrollTo
scrollTo方法允许你将元素滚动到指定的位置。它接受两个参数:水平位置和垂直位置,单位都是像素。
示例:
// 滚动到指定位置
window.scrollTo(0, 500); // 滚动到距离顶部500像素的位置,水平位置为0
1
2
2
或者,你也可以使用一个对象作为参数,包含top、left和behavior属性:
window.scrollTo({
top: 500, // 滚动到距离顶部500像素的位置
left: 0, // 水平位置为0
behavior: 'smooth' // 平滑滚动
});
1
2
3
4
5
2
3
4
5
scrollTo方法的behavior参数设置为'smooth'可以实现平滑滚动效果,而不是瞬间跳转。
scrollTop不止用于window上,普通的可滚动元素也可以调用该方法,如下:
<div id="box">
<!-- 内容 -->
</div>
<script>
let boxEle = document.getElementById('box')
boxEle.scrollTo({ left: 0, top: 200, behavior: 'smooth' }); // 滚动到顶部200像素的位置
</script>
<style>
#box {
height: 500px;
overflow-y: scroll;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
使用scrollTo相比scrollTop可以设置过渡动画,推荐使用scrollTo来设置滚动位置。
上次更新: 2025/09/05, 8:09:00