я пытаюсь сделать приложение с Intel XDK (сборка 2727), и сейчас моя проблема в том, что я не могу прокручивать по вертикали, когда у меня есть список, превышающий размер экрана. я отследил проблему до Hammer.js. Этот плагин, кажется, используется для боковой панели. Итак, я попытался прокомментировать исходный код и вуаля, он работает. Но мне нужна боковая панель и, следовательно, Hammer.js. После исследования выяснилось, что у других возникает такая же проблема, и наиболее распространенным решением для этого, по-видимому, является overflow-y: scroll;
, я тоже пробовал, но не повезло. Итак, как я могу решить эту проблему, не обращаясь к исходным данным Hammer.js, а, например, сделав исключение на листах CSS?
вертикальная прокрутка заблокирована Hammer.js
Ответы (3)
Используйте этот стиль в CSS элемента DOM при использовании события Hammer (откат JS):
touch-action: pan-y !important;
Вы увидите, что вертикальная прокрутка работает.
См. документы о свойстве touch-action
: https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action
Нам нужно отключить сжатие, вращение и панорамирование событий HammerJS или нам нужно обрабатывать вертикальную прокрутку с помощью HammerJS. hammejs добавляет touch-action: none;
css к элементу, к которому вы применяете события Hammejs.
чтобы отключить эти события в Angular, вы можете использовать следующую конфигурацию:
export class MyHammerConfig extends HammerGestureConfig {
overrides = <any>{
// override hammerjs default configuration
'swipe': { direction: Hammer.DIRECTION_HORIZONTAL },
'pinch': { enable: false },
'rotate': { enable: false },
'pan': { enable: false }
};
}
Хорошо, я нашел (частичное) решение. В swipe-hammer.js ".upage" подключен к молотку во всех направлениях. Изменил его на DIRECTIONS_HORIZONTAL
, и это решило проблему на данный момент. Основная проблема в том, что Хаммер подключен ко всей странице, а не только к сайдбару. Не знаю, правильный ли это способ.
В любом случае, большое спасибо @Thomas за подсказку.