Как проверить, что экран сенсорный и не используется мышь?

Как проверить, что страница открыта на мобильном устройстве или на планшете?
Как узнать, используется мышь или нет?
  • Вопрос задан
  • 14047 просмотров
Пригласить эксперта
Ответы на вопрос 3
Проверить что страница открыта на мобильном устройстве - довольно просто:

isMobile = {
        Android: function() {
            return navigator.userAgent.match(/Android/i);
        },
        BlackBerry: function() {
            return navigator.userAgent.match(/BlackBerry/i);
        },
        iOS: function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        },
        Opera: function() {
            return navigator.userAgent.match(/Opera Mini/i);
        },
        Windows: function() {
            return navigator.userAgent.match(/IEMobile/i);
        },
        any: function() {
            return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
        }
    };


usage:
if (isMobile.any()) {
    alert('is mobile !');
}


Проверить есть ли поддержка touch евентов тоже не сложно:
function is_touch_device() {
  return !!('ontouchstart' in window);
}
Ответ написан
maxaon
@maxaon
В кратце - при косании сначала происходят тач события (touchstart...) потом клик. Подробно.
А зачем вам проверять где открыто? Проверяйте возможности modernizr.com. Если для статистики - проверяйте userAgent или wurfljs.com.
Ответ написан
RubaXa
@RubaXa
Можно проверить наличие поддержки touch-событий, но это не гарантирует отсутствие мыши или какого то другого источника «ввода». Юзер может пользоваться одновременно мышью и touch-экраном и это не редкость, как может показаться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы