событие pointerdown - сохраняешь начальную event.clientX
событие pointerup - смотришь конечную event.clientX, сравниваешь расстояние между ними
для пущей убедительности можно еще сравнить время этих двух евентов чтобы вычислить "скорость" пролистывания :)
&& ev.clientY == downY
так никогда не получится, чтобы реально ни на пиксель вверх или вних мышку не подвинул, хватит сравнить только X-координату