scroll 事件是不支持冒泡的,那么怎么收集呢?当然是在捕获阶段进行收集了。
document.addEventListener('scroll', (e) => { const target = e.target const isTop = Object.getPrototypeOf(target).constructor.name === 'HTMLDocument' const scrollLeft = isTop ? window.scrollX : target.scrollLeft const scrollTop = isTop ? window.scrollY : target.scrollTop console.log({ target, scrollLeft, scrollTop }) }, true)
这样就可以通过兼容方式收集到滚动事件的信息了。