Как определить направление прокрутки без прокрутки? Вот что я делаю:
function preventDefault(e) {
e = e || window.event;
if (e.preventDefault)
e.preventDefault();
e.returnValue = false;
}
window.ontouchmove = preventDefault;
window.addEventListener('touchmove', function(e) {
if (e.deltaY < 0) {
console.log('scrolling up');
document.getElementById('status').innerHTML = 'scrolling up';
}
if (e.deltaY > 0) {
console.log('scrolling down');
document.getElementById('status').innerHTML = 'scrolling down';
}
});
<div style='height: 2000px; border: 5px solid gray; touch-action: none;'>
<p id='status'></p>
</div>
Что я наблюдаю, так это то, что хотя экран не прокручивается, ни один из кодов слушателя событий не выполняется. Это потому, что в событии нет свойства deltaY. Я использовал эквивалентный код на рабочем столе с событием «wheel» для определения направления прокрутки без прокрутки.