Наступил 2016 год, и многие устройства уже несколько лет имеют сенсорные и мышевидные входы. «Can't touch» - это , а не хороший способ оценить «Can mouseover» . Вот лишь несколько примеров:
- Устройства цифрового планшета "Active pen" , такие как телефоны и планшеты Galaxy Note (Android), Microsoft Surface (Windows) и Wacom Cintiq (Mac / Windows / Android), и я верю, что iPad Pro тоже, где ручка работает, как мышь, и может «зависать» на расстоянии около 1 см от экрана
- ноутбуки / гибриды Windows с сенсорными экранами, а также обычные трекпады для ноутбуков и т. Д.
- Сенсорные мониторы, которые можно подключить к любому компьютеру и использовать с мышью
Таким образом, пользователь может быть неспособен навести курсор на одну минуту, а затем, на том же устройстве, не обновляя страницу, он вытаскивает перо из своей Galaxy Note и (при условии, что оно не загорается) внезапно используют hover в своем взаимодействии, и они ожидают, что это будет Just Work.
Если вам необходимо знать, может ли ваш пользователь: а) использовать и б) в настоящее время - это , используя устройство, которое позволяет им удобно перемещать вещи, вы может:
- Привязать событие
mousemove
к вашему документу body
, которое активирует состояние "имеет зависание" (например, добавление класса user-can-mouseover
к body
), если курсор, вызывающий перемещение мыши, перемещается, а затем немедленно отменяет привязку. так бывает только один раз.
- Также связывайте событие
touchstart
, которое временно деактивирует mousemove
и touchend
, которое его активирует, так что в браузерах, которые вызывают события мыши при касании (довольно часто встречаются в Android и Windows), обычная сенсорная прокрутка не работает. Вызвать mousemove
.
- У события
mousemove
открепите эти touchstart
и touchend
события для хорошего ведения хозяйства
Это приведет к тому, что состояние «может зависнуть» будет срабатывать каждый раз, когда пользователь начинает использовать устройство ввода, которое ведет себя как мышь.
Например, взять гибридное устройство:
- Изначально пользователь просматривает веб-страницы с помощью касания и пролистывания.
- Они доходят до вашего приложения, смахивают вверх и вниз с помощью касания, понимая, что это такое. Пока что условие "может зависать" не активно.
- Они решают, что это один из тех случаев, когда им нужна большая точность, чем позволяют их толстые пальцы, поэтому они вытаскивают перо дигитайзера или достают за мышь.
- Это приводит к перемещению курсора по странице без возникновения события без нажатия, поэтому ваше условие «может зависать» срабатывает
... и использование старой рабочей станции с мышью:
- Страница загружается.
- Пользователь перемещает мышь, делая что-либо, немедленно вызывая событие перемещения мыши
- Состояние "зависание может" запускается немедленно