Обнаружение поддержки мыши - PullRequest
10 голосов
/ 20 января 2012

Это противоположность обнаружения поддержки касания в браузерах.Как я могу определить, есть ли в браузере поддержка мыши?Chrome для настольных ПК должен возвращать true, Safari для iPad должен возвращать false.

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

Ответы [ 3 ]

1 голос
/ 31 июля 2013

В браузерах, использующих сенсорные события:

var clickEvent = ('ontouchstart' in window ? 'touchend' : 'click'); в основном говорится «если устройство поддерживает касание, слушайте только касание, а не щелчок» - что на устройстве с множественным вводом немедленно отключает любое взаимодействие с помощью мыши, трекпада или клавиатуры.

Эта статья детально обсуждает ваш вопрос здесь

Еще одна проницательная статья здесь

Но все зависит от того, чего вы хотите достичь.

0 голосов
/ 20 января 2012

Этот метод проверяет, существует ли объект Touch без использования событий.Если это не так, у вас есть мышь.Я думаю, что это самый простой способ сделать это.Он вернет false на редком устройстве с сенсорным экраном и мышью, поэтому вам нужно будет решить, повлияет ли это на ваш дизайн.1008 * Сценарий:

function hasTouch() {
    return (typeof Touch == 'object' );
};

document.getElementById( 'touch' ).textContent = 'Mouse: ' + !hasTouch();

HTML:

<div id="touch"></div>
0 голосов
/ 20 января 2012

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

РЕДАКТИРОВАТЬ: другой возможностью может быть использование onmousemove таким же образом, как вы используете ontouchmove для определения возможности касания. Однако я не уверен, что мобильные браузеры будут регистрироваться на mmousemove.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...