Проблема вызвана API-интерфейсом pointerevents. Событие «pointercancel» запускается, когда браузер по умолчанию обрабатывает события касания как панорамирование, масштабирование и т. Д. Сам по себе. Как угловой материал обрабатывает свои касания, событие «pointerdown-pointercancel» рассматривается как «pointerdown-pointerup». Таким образом, прокрутка вниз или прокрутка в любом направлении немедленно вызовет «pointerdown-pointerup», в результате чего инфраструктура обнаружит ее как левую.
Решение 1
Применение правила CSS:
md-tabs-content-wrapper, [md-swipe-left], [md-swipe-right] { touch-action: pan-y; }
Это правильно определяет направление салфетки. Но у вас будет другая проблема. Прокрутка вверх/вниз приведет к изменению вкладок!
Решение 2
Не слушайте pointerevents. Мышь и сенсорные события хватит на настольных компьютерах и мобильных телефонах.
Вам нужно будет внести изменения в код углового материала. При использовании углового-material.js файла, Измените следующее:
// Listen to all events to cover all platforms.
var START_EVENTS = 'mousedown touchstart pointerdown';
var MOVE_EVENTS = 'mousemove touchmove pointermove';
var END_EVENTS = 'mouseup mouseleave touchend touchcancel pointerup pointercancel';
To:
// Listen to all events to cover majority of platforms.
var START_EVENTS = 'mousedown touchstar';
var MOVE_EVENTS = 'mousemove touchmoev';
var END_EVENTS = 'mouseup mouseleave touchend touchcancel';
Вопрос признан и остается открытым. Вот дискуссия: https://github.com/angular/material/issues/10145
Можете ли вы привести пример? – kuhnroyal