背景

通常我们需要判断滚动条是否滚到底部,以实现相应的功能,如“加载更多”等。
那么如何通过js来判断滚动条是否滚到底部,请看以下方法

解决方案(以纵向滚动条为例,横向滚动条方法类似)

判断滚动条到底部,需要用到DOM的三个属性值,即clientHeight、scrollTop、scrollHeight。(横向滚动条则是clientWidth,scrollLeft,scrollWidth)

clientHeight为内容可视区域的高度。

scrollTop为滚动条在Y轴上的滚动距离。

scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。

从这个三个属性的介绍就可以看出来,滚动条到底部的条件即:
clientHeight + scrollTop === scrollHeight

const dom = document.getElementById('scrollElement');
dom.addEventListener('scroll', () => {
	const clientHeight = dom.clientHeight;
	const scrollTop = dom.scrollTop;
	const scrollHeight = dom.scrollHeight;
	if (clientHeight + scrollTop === scrollHeight) {
		console.log('竖向滚动条已经滚动到底部')
	}
})
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐