如何在JavaScript中滚动到指定pageY位置?
页面滚动到指定pageY位置的实现方法
下面是几种实用的实现方式,直接就能用:
1. 用window.scrollTo()(推荐,支持平滑滚动)
这是最常用的方法,能精准控制滚动位置,还能加平滑动画:
// 从PointerEvent中获取目标pageY值 const targetPosition = event.pageY; // 滚动到指定位置,behavior设为'smooth'开启平滑滚动 window.scrollTo({ top: targetPosition, behavior: 'smooth' });
要是不需要平滑效果,直接用简化版就行:
window.scrollTo(0, targetPosition);
2. 用window.scroll()
和scrollTo()功能完全一致,写法稍有不同:
window.scroll({ top: targetPosition, behavior: 'smooth' }); // 无平滑效果的简化写法 window.scroll(0, targetPosition);
3. 直接设置scrollTop属性
这种方式是瞬间跳转,适合不需要动画的场景,要注意兼容不同浏览器的文档模式:
const targetPosition = event.pageY; // 标准模式下用document.documentElement document.documentElement.scrollTop = targetPosition; // 兼容怪异模式的写法 // (document.documentElement || document.body).scrollTop = targetPosition;
额外提示
如果页面有固定在顶部的导航栏,记得把目标位置减去导航栏的高度,比如top: targetPosition - document.querySelector('.header').offsetHeight,避免目标区域被导航栏挡住。
内容的提问来源于stack exchange,提问作者丶 Limeー来夢 丶
相关产品推荐
相关产品推荐

