как определить, использует ли пользователь планшет Windows

мой код плохо работает на планшете с Windows. Я использую плагин slick-slider. и его следует деактивировать, если пользователь использует сенсорные устройства. Я проверил свой сайт на планшете с Windows, и вместо класса «сенсорный» у меня есть «без сенсорного» вот мой код

if( $('.no-touch').length ) {
    new Slider({
        element: '.theme-slider',
        slide: 'div',
        dots: false,
        infinite: false,
        arrows: true,
        slidesToShow: 2,
        slidesToScroll: 2,
    });
  }
});

как я могу определить, открыт ли мой сайт с помощью Windows-планшета


person User1979    schedule 04.04.2016    source источник
comment
Возможно, вы можете попытаться увидеть, какой пользовательский агент используется stackoverflow.com/a/14226881/5027172   -  person François Dupont    schedule 04.04.2016


Ответы (4)


Возможно, это сработает для вас:

var isTouchDevice    = 'ontouchstart' in window || (navigator.msMaxTouchPoints>0);

От:

Обнаружение планшета Windows (сенсорных устройств Windows) с помощью Jquery

person E. R.    schedule 04.04.2016
comment
Как насчет ноутбука с сенсорным экраном? - person Aung Myat Hein; 02.01.2018

С javascript вы можете использовать объект навигатора:

var isms = navigator.platform; // win32 on mysystem
person Jai    schedule 04.04.2016

Не существует прямого вызова API для определения того, является ли Windows ПК или планшет. Microsoft Surface Pro может быть планшетом, когда вы держите его в руке, и может быть ноутбуком, когда вы подключаете его к мыши и кладете на стол.

Если вы используете окна с мышью, то это ПК! Если вы используете винду без мыши, то это планшет.

Нет функции, чтобы определить, подключена ли мышь у пользователя или нет, но вот обходной путь:

var Mousefound = false;

function MouseActivity(e) {

  window.removeEventListener('mousemove', MouseActivity, false);
  Mousefound = true;

  // enable your slick-slider plugin

}

window.addEventListener('mousemove', MouseActivity, false);
person Armin Nikdel    schedule 04.04.2016

этот код возвращает true в браузере Surface, Edge

if (window.navigator.pointerEnabled && navigator.maxTouchPoints > 1) {
    ...your function goes here...
}

вы должны использовать maxTouchPoints> 1, потому что хром возвращает «1» на рабочем столе. Однако браузеры на сенсорных устройствах возвращают 10

person Sasha Zhardetskaya    schedule 05.10.2017
comment
это все еще правда? Есть ли способ отличить планшеты от ноутбуков / настольных компьютеров? - person oldboy; 28.10.2020
comment
кажется, что он возвращает 1 только в том случае, если активировано представление mobile в консоли разработчика? - person oldboy; 28.10.2020