如何检测用户是否正在使用Windows平板电脑

4

我的代码在Windows平板上运行不正常。我正在使用slick-slider插件,如果用户使用触摸设备,则应将其停用。 我在Windows平板上检查了我的网站,并且没有“touch”类,而是有“no-touch”类。 以下是我的代码:

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

如何检测我的网站是否在Windows平板电脑上打开


也许你可以尝试查看使用了什么用户代理。https://dev59.com/zWzXa4cB1Zd3GeqPZvgo#14226881 - François Dupont
4个回答

1

1
带触摸屏的笔记本电脑怎么样? - Aung Myat Hein

0

这段代码在Surface和Edge浏览器上返回true

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

你应该使用 maxTouchPoints > 1,因为 Chrome 在桌面上返回 "1"。然而,触摸设备上的浏览器返回 10。


这还是有效的吗?有没有办法区分平板电脑和笔记本电脑/台式机? - oldboy
只有在开发者控制台中激活“移动”视图时,它似乎才会返回“1”? - oldboy

0

没有直接的API调用来检测Windows是PC还是平板电脑。 当你手持Microsoft Surface Pro时,它可以是平板电脑,当你连接鼠标并将其放在桌子上时,它可以是笔记本电脑。

如果您使用带有鼠标的Windows,则它是PC!如果您使用没有鼠标的Windows,则它是平板电脑。

没有函数可以检测用户是否连接了鼠标,但这里有一个解决方法:

var Mousefound = false;

function MouseActivity(e) {

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

  // enable your slick-slider plugin

}

window.addEventListener('mousemove', MouseActivity, false);

0

使用JavaScript,您可以使用navigator对象:

var isms = navigator.platform; // win32 on mysystem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接