Я использую Ember-Gestures, который реализует Hammer.js в приложении Cordova, чтобы реализовать некоторые простые элементы управления жестов.Как я могу использовать Hammer JS жест жесткого диска на iOS без прокрутки страницы?
Я столкнулся с серьезной проблемой, при которой любой жест, который запускает анимацию (переход, преобразование, анимацию SVG), если экран прокручивает любую сумму, эта анимация замерзнет и будет в конечном состоянии при завершении прокрутки , В частности, у меня есть элемент на вертикально прокручиваемой странице, который должен (в идеале) быть укорененным и расширяться, чтобы развернуть его на несколько элементов или обратно в один.
Мне известно, что в качестве оптимизации iOS зависает вся анимация во время прокрутки. Однако, поскольку жесты с щепоткой и салфетками могут слегка прокручивать экран, это ужасно для пользователя, потому что сложные переходы могут быть полностью заморожены, если пользователь промахется, например, чуть вверх и влево, а не прямо слева.
Я пробовал несколько решений для рендеринга во время прокрутки, таких как here, но они, похоже, не работают на современных версиях iOS. Я также попробовал метод hammerJS e.preventDefault(), чтобы заморозить скроллинг во время жестов, называемых через расширение Эмбер-жесты, так что мой метод выглядит следующим образом:
swipeLeft(e) {
e.originalEvent.gesture.srcEvent.preventDefault()
// Do stuff
},
... но это не имеет какого-либо заметного эффект. (Может быть, есть что-то здесь не так? gesture
не имело preventDefault()
метода сам, и Эмбер-жесты, кажется, пытаются абстрагироваться некоторые из этого отеля.
Есть ли способ, я могу либо сохранить анимацию рендеринг во время прокрутки (это кажется маловероятным), или поочередно останавливать прокрутку страницы перед выполнением анимации (и предотвращать ее прокрутку во время ее выполнения)?
В любом случае, я могу добавить ограничения на то, что интерпретируется как «щепотка» или «салфетки», так что те, которые также будут интерпретироваться как жесты прокрутки, исключаются.