错误的 scrollTop 改变方向

Wrong scrollTop on change direction

scrollTopmouse wheel 事件中我有奇怪的行为,你能解释一下为什么会这样吗?

When mouse wheel direction changes, scrollTop continue calc in previous direction by one iteration... i wanna get actual scrollTop on mouse wheel event with change direction.

scrollTop: 0; deltaY: 200 (Dn)
scrollTop: 100; deltaY: 200 (Dn)
scrollTop: 200; deltaY: 200 (Dn)
scrollTop: 300; deltaY: 200 (Dn)
scrollTop: 400; deltaY: 200 (Dn)
scrollTop: 500; deltaY: -200 (Up) <<< direction changed but srollTop grows,  expected value 300 not 500  
scrollTop: 400; deltaY: -200 (Up)
scrollTop: 300; deltaY: -200 (Up)

我该如何解决?

JSfiddle

wheel 事件在 scroll 事件之前触发(实际上是在更改滚动之前),因此您正在记录的 scrollTop 是它开始时的值事件被触发(当你滚动滚轮时)