JavaScript的增强现实(AR)是基于Web技术在浏览器中实时叠加虚拟3D内容到真实视频流的Web AR;AR.js是轻量开源框架,依托A-Frame与Three.js,支持Marker、定位及NFT跟踪,兼容主流移动浏览器。
JavaScript 的增强现实(AR)是指利用 Web 技术(主要是 JavaScript、HTML 和 WebGL)在浏览器中实时叠加虚拟 3D 内容到真实世界视频流上,无需下载原生 App。核心是通过手机摄像头捕获画面,结合传感器(陀螺仪、加速度计)或图像识别(如 marker 或平面检测),把 3D 模型、文字、动画等“锚定”在现实空间中 —— 这就是 Web AR。
AR.js 是一个基于 A-Frame 和 Three.js 的开源 JavaScript 库,专为 Web 端 AR 设计。它不依赖原生 SDK,所有逻辑运行在浏览器中,支持 Android(Chrome、Firefox、Edge)和 iOS(Safari 16.4+,需开启实验性 WebXR 功能)。特点是启动快、部署简单(静态页面即可)、兼容性强,适合快速原型、营销活动、教育演示等场景。
it/ARCore 原生桥接),但做了大量封装,降低使用门槛以最常用的 marker 跟踪为例,这是入门最快的方式:打印一张标准 Hiro marker(AR.js 官方提供),对准它就能显示 3D 模型。
python3 -m http.server 8000,然后访问 http://localhost:8000
arjs-location 或 arjs-threex 不需要单独引,AR.js 已整合) 启用 AR 模式,添加 arjs="sourceType: webcam; debugUIEnabled: false;";用 定义识别区域(默认识别 Hiro marker);内部放 或
AR.js 默认行为适合快速验证,但实际项目常需调整参数或解决兼容性问题。
为自定义图片,需配合 type="image" 和 url 属性,并预加载图片( 中声明)debugUIEnabled: false),减少模型面数,用 glTF 压缩格式(.glb),避免每帧 JS 计算过多逻辑arjs="sourceType: webcam; trackingMethod: best; debugUIEnabled: false;" + ),但精度受 GPS 限制,适合大尺度场景(如地标导览)AR.js 支持事件监听和动态控制,可实现点击、旋转、缩放、动画触发等交互。
document.querySelector('a-marker').addEventListener('markerFound', () => {...})
AFRAME.utils.device.isMobile 判断设备,或监听 window.addEventListener('deviceorientation', ...) 做体感控制