浏览器使scroll事件异步(即{passive: true})一段时间了。对于我的用例,同步提供了更好的用户体验。有什么方法可以重新获得同步滚动事件,这样我就可以在(scrollLeft, scrollTop, clientWidth, clientHeight)矩形发生变化但在滚动呈现之前进行 DOM 操作?作为一种奇怪的解决方法,在 Firefox 中打开和关闭 Dev Tools 会使事件同步,这就是我注意到同步提供了更好的用户体验的方式。同时设置apz.disable_for_scroll_linked_effects为 true 使事件同步。同样在 Safari(桌面)中,它们似乎总是同步的。我尝试过的事情:div.addEventListener('scroll', update, {passive: false})但passive: false被忽略了。Object.defineProperty(Object.getPrototypeOf(div), 'scrollTop', {get: ..., set: ...})但是没有调用二传手。div.addEventListener('wheel', update, {passive: false})但我不确定是否可以映射 from deltaY-> updated scrollTop,而且它不解决通过滚动条滚动的问题。
添加回答
举报
0/150
提交
取消