avascript如何判断是触摸屏还是PC端

news/2025/12/4 5:48:09/文章来源:https://www.cnblogs.com/huaan011/p/19304689

avascript如何判断是触摸屏还是PC端

在Web开发中,判断设备是触摸屏还是PC端(鼠标操作)通常涉及到检测用户输入的类型。JavaScript提供了几种方式来实现这一功能,以下是一些常见的方法:

1. 使用 'ontouchstart' 属性

'ontouchstart' 是一个只在触摸屏设备上存在的属性。你可以通过检查这个属性是否存在来判断设备是否为触摸屏。

if ('ontouchstart' in window) {console.log('触摸屏设备');
} else {console.log('非触摸屏设备(如PC端)');
}

2. 使用 navigator.maxTouchPoints

navigator.maxTouchPoints 属性返回一个数字,表示设备可以同时跟踪的最大触摸点数。如果这个值大于0,则通常意味着设备是触摸屏。

if (navigator.maxTouchPoints > 0) {console.log('触摸屏设备');
} else {console.log('非触摸屏设备(如PC端)');
}

3. 使用 'pointer' 事件

pointer 事件是一组事件,旨在统一鼠标、触摸屏和笔输入。通过监听这些事件,你可以检测到用户输入的类型。

window.addEventListener('pointerdown', function(event) {if (event.pointerType === 'touch') {console.log('触摸屏设备');} else {console.log('非触摸屏设备(如PC端)');}
});

4. 使用第三方库

还有一些第三方库,如 Modernizr,可以帮你更方便地检测设备类型。例如:

if (Modernizr.touchevents) {console.log('触摸屏设备');
} else {console.log('非触摸屏设备(如PC端)');
}

5. 使用CSS媒体查询(适用于响应式设计)

虽然这不是直接用JavaScript判断,但你可以通过CSS媒体查询来应用不同的样式规则,从而间接影响你的用户体验。例如:

@media (hover: none) and (pointer: coarse) {/* 针对触摸屏设备的样式 */
}

总结

根据你的具体需求,你可以选择上述方法中的一种或多种来检测设备类型。通常,第一种和第二种方法是最直接和常用的方式。如果你需要更复杂的输入检测或希望减少对浏览器的依赖,使用'pointer'事件或第三方库可能是更好的选择。对于响应式设计,CSS媒体查询也是一个很好的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年下半年内蒙古探水钻机企业综合评测与选购指南

摘要 随着内蒙古矿产资源开发的持续深入,探水钻机作为矿山勘探的核心设备,其市场需求在2025年下半年呈现稳步增长态势。本文基于行业调研数据及用户反馈,为您推荐五家值得关注的探水钻机企业(排名不分先后),重点…

2025年下半年内蒙古探水钻机企业综合推荐指南:十大优质供应商盘点

摘要 随着内蒙古矿产资源开发的不断深入,探水钻机作为矿山勘探的关键设备,其市场需求在2025年下半年持续增长。本文基于行业调研数据,为您推荐十家在该领域表现突出的企业,排名不分先后,仅作参考。特别说明:本推…

杭州拱墅区初中初一初二初三中考辅导机构推荐——德易辅导班李秋老师

随着中考竞争的日益激烈,以及对孩子未来学业长远发展的关注,高效、系统化的考试提分辅导成为杭州家庭的核心考量。然而,市场上补习机构众多,真正的核心能力、提分效果、学习方法论却良莠不齐,家长在选择时常常面临…

2025年下半年内蒙古履带钻机品牌综合推荐与选购指南

摘要 2025年下半年,内蒙古地区的履带钻机行业在矿产资源开发和基础设施建设推动下持续发展,品牌竞争加剧。本文基于第三方调研和用户反馈,整理了五家推荐品牌,并提供简要表单供参考。排名仅为推荐,不区分先后顺序…

2025年下半年内蒙古履带钻机品牌综合评估与选购指南

摘要 随着内蒙古矿产资源开发的持续深入,履带钻机作为矿山勘探的核心装备,其市场需求在2025年下半年呈现稳步增长态势。本文基于行业调研数据,为读者推荐10家在本地区表现优异的履带钻机品牌(排名不分先后),重点…

图片的秘密

将文件放进随波逐流里面用binwalk分离获得一个压缩包,打开压缩包发现这个文件里面有一个pass.txt打开发现秘钥,在返回上一个文件打开word,在打开media将里面的图片解压出来在https://tool.zootu.cn/tools/fun/pixel…

tailscale与macos shadow火箭,chrome浏览器proxyswitchomega并存问题

问题:开magicdns chrome下switchomega direct连接访问谷歌会报证书错误, 这是因为switchomega direct模式下,dns被magicdns接管的,不走火箭的,导致ip错误了(被污染) 。可以:1 关magicdns2 tailscale后台开over…

RSI 2

将文件放进随波逐流里面,用binwalk分离,发现一个压缩包将压缩包里面的文件提取出来,打开文件发现大量数据借用大佬的脚本,将数据转成图片点击查看代码 import matplotlib.pyplot as pltdef validate_coord(coord):…

RSI 1

将文件放进随波逐流里面,使用binwalk分离文件获得一个压缩包,打开压缩包将里面的文件解压出来打开文件获得flag

CVE-2016-7124

CVE-2016-7124复现分析代码,当执行反序列化时触发__wakeup(),导致返回默认页面,但是当序列化字符串中对象属性数量大于实际属性数量时,__wakeup()不会执行,从而绕过。生成payload,将O:8:"xiaorang":1:{…

接口加密

接口加密一、业务场景介绍 数据安全性 - 抓包工具系统明文传输的数据会被不明身份的人用抓包工具抓取,从而威胁系统和数据的安全性。 二、加密方式 1. 摘要算法消息摘要是把任意长度的输入揉和而产生长度固定的信息。…

订单服务(Ordering.API)之领域层

前言 领域层(Ordering.Domain) 1.领域层职责职责 说明 示例1️⃣ 表达领域模型 通过实体(Entity)、值对象(Value Object)建模业务对象及其行为。 Order、OrderItem、Address2️⃣ 封装业务规则 在模型中定义业务不…

订单服务(Ordering.API)之应用层

前言 应用层(Ordering.API) 1.应用层职责职责 说明1️⃣ 编排业务流程(流程协调者) 调用多个领域对象(聚合根、领域服务),协调它们完成一个完整的用例。例如:下单时,依次校验库存、计算价格、保存订单、发布领域…

订单服务(Ordering.API)之基础设施层

前言 基础设施层(Ordering.Infrastructure) 1.基础设施层职责职责类型 说明1️⃣ 持久化实现(Repository 实现) 实现领域层定义的仓储接口(IOrderRepository、IBuyerRepository等),与数据库交互(通常使用 ORM,如…

订单服务(Ordering.API)之表现层

前言 表现层(Ordering.API) 1.表现层职责职责 说明1️⃣ 用户交互接口 提供给用户或外部系统的访问入口,如 Web API、MVC Controller、Razor 页面、Blazor 页面等。2️⃣ 请求验证 对输入数据进行基础校验,如必填字段…

环信im云即时通讯

环信im云即时通讯一、环信im云介绍 环信im云是即时通讯云 PaaS 平台,开发者可以通过简单的SDK和REST API对接。支持安卓,iOS,Web等客户端SDK对接 提供单聊,群聊,聊天室等即时通讯功能 支持富媒体消息,实时音视频…

Minimal API(Net9)

前言 Minimal API(Net9) Minimal API 是 ASP.NET Core 提供的一种“极简”风格的写法:用非常少的样板代码(通常在 Program.cs)直接注册路由和处理器,适合微服务、后端小服务、快速原型或需要极高性能/低开销的 HTT…

MediatR 中介者模式

前言 MediatR 1.简介 概念 MediatR 是一个 .NET 的轻量级库,用来实现 Mediator(中介者)模式,主要目的是把对象之间的直接调用(紧耦合)替换为通过中介者传递消息(松耦合)。它常用来实现 请求-处理(Request/Res…

FluentValidation 模型校验框架

前言 验证器(FluentValidation) 1.简介 概念 FluentValidation 是一个 .NET 的验证库,用 流式语法(Fluent API) 定义对象验证规则。它的特点:强类型:验证类对应模型类。 流式接口:代码清晰可读。 可扩展:支持自…

IdentityServer4认证授权之授权码模式(Authorization Code+PKCE)

前言 1.配置服务认证授权 订单服务(Ordering.API)配置了认证授权,所以我们使用Scalar调试接口的时候也需要认证服务(Identity.API)颁发的token,上面的测试就是401无权限 首先我们再回忆下我们认证授权配置了那些:认…