js实现滚动距离
获取滚动距离的方法
在JavaScript中,可以通过不同的属性获取页面或元素的滚动距离。以下是常见的实现方式:
获取页面垂直滚动距离
使用window.scrollY或document.documentElement.scrollTop获取页面垂直滚动距离:

const scrollTop = window.scrollY || document.documentElement.scrollTop;
获取页面水平滚动距离
使用window.scrollX或document.documentElement.scrollLeft获取页面水平滚动距离:
const scrollLeft = window.scrollX || document.documentElement.scrollLeft;
获取元素滚动距离
对于特定DOM元素,使用scrollTop和scrollLeft属性:

const element = document.getElementById('scrollable-element');
const elementScrollTop = element.scrollTop;
const elementScrollLeft = element.scrollLeft;
监听滚动事件
通过添加scroll事件监听器实时获取滚动距离:
window.addEventListener('scroll', function() {
console.log('Vertical scroll:', window.scrollY);
console.log('Horizontal scroll:', window.scrollX);
});
// 对于元素滚动
document.getElementById('scrollable-element').addEventListener('scroll', function() {
console.log('Element scroll top:', this.scrollTop);
});
设置滚动距离
使用window.scrollTo()或直接修改元素的scrollTop/scrollLeft属性:
// 滚动到页面指定位置
window.scrollTo({
top: 500,
left: 0,
behavior: 'smooth' // 可选平滑滚动
});
// 设置元素滚动位置
document.getElementById('scrollable-element').scrollTop = 200;
注意事项
- 兼容性:
window.scrollY/X在旧版IE中不支持,需使用document.documentElement.scrollTop/Left或document.body.scrollTop/Left - 性能:频繁触发的scroll事件可能影响性能,建议使用节流(throttle)优化






