кендо мобильный список - предотвратить выделение касания при прокрутке

Я не думаю, что это адекватно освещается в подобных сообщениях (например, в этом: предотвратить сенсорный запуск при пролистывании), когда речь идет о мобильном кендо.

Моя проблема заключается в том, что когда я касаюсь мобильного списка кендо (конечной длины), чтобы начать жест смахивания или прокрутки, строка, к которой я прикасаюсь, немедленно отображается в состоянии "::active", которое в моем CSS изменяет цвет фона ряд. Каждая строка в списке является якорем и, следовательно, также должна поддерживать взаимодействие касания/касания. Это раздражает, потому что заставляет пользователя думать, что он выбрал элемент списка, хотя на самом деле это не так.

Мобильное приложение Kendo решает, что такое касание/касание, а что — свайп. Я не. Я надеюсь, что есть какой-то способ предотвратить подсветку сенсорного экрана при обнаружении пролистывания. Я также открыт для изменения визуального представления прикосновения, если оно по-прежнему связано с изменением цвета фона. Может быть, преобразование цвета CSS с небольшой задержкой? Любые идеи?


person lje    schedule 22.08.2014    source источник


Ответы (1)


Практически все, что связано с активными состояниями и жестами, в мобильных веб-браузерах представляет собой большой беспорядок. События запускаются браузером, несколько уточняются Cordova, а затем снова уточняются Kendo.

Большая проблема заключается в том, что когда ваш палец касается экрана, он не может знать, что вы собираетесь начать свайп через мгновение. на самом деле вы можете положить палец на экран и удерживать его там в течение 10 секунд, прежде чем начать жест. Как правило, когда вы запускаете жест, он отменяет событие щелчка/касания и вместо этого изменяется на смахивание, которое должно очищать активное состояние.

Я вижу такое же поведение практически в каждом нативном приложении. Нажмите и удерживайте кнопку, и она станет «активной», но если вы уберете с нее палец, она снова станет неактивной.

Ваша строка должна удалить «активное» состояние, как только вы начнете проводить пальцем.

Исходя из опыта, я бы честно сказал, что если вы не хотите потратить неделю на борьбу с крайними случаями и уродливым кодом обработки событий, не боритесь с существующим поведением.


Проще было бы просто избавиться от изменения цвета фона с помощью CSS. Для iOS7 CSS будет таким:

.km-ios7 li.km-state-active .km-listview-link {
    #background-color: transparent;
}

Но тогда в событии касания у вашего пользователя не будет визуальной обратной связи о том, что он нажал элемент, что, по моему мнению, является худшим пользовательским опытом.

person CodingWithSpike    schedule 29.08.2014