原生js计算页面滚动开始和滚动结束的数据
今天接到一个页面滑动时统计开始和结束位置的需求,本以为很简单,结果发现网上都是JQ二次封装的,只能自己手撸一个
var startPos = null var endPos = null var timer = null window.addEventListener('scroll', function (e) { // startPos = null的时候说明没有滑动 if(startPos == null){ // 滑动开始后只赋值一次 startPos = document.documentElement.scrollTop } // 函数防抖 if (timer) { clearTimeout(timer) } timer = setTimeout(() => { // 300ms后判定为滑动结束 endPos = document.documentElement.scrollTop console.log(startPos,endPos) // 滑动结束将startPos复原null startPos = null }, 300) });