javascript - AR.JS 对移动设备和角落点击事件的最终答案
问题描述
在过去的几周里,我一直在努力解决 A-Frame / AR.JS 点击事件并将其带到移动网络浏览器中。我尝试了每个教程并阅读了所有相关的 github 问题,但仍然没有运气。
我只是想在可点击的标记上方显示一些 a 框(例如 6 个)。单击其中一个框会将您带到另一个网页。但我遇到以下问题:
- 只有当框非常靠近中心时才会正确触发点击事件。在视图的边界处无法识别点击。在浏览器中尝试显示,在悬停时,“点击手”有时会弹出移位到框。
- 在某些手机浏览器中,视图被极度放大。我认为这不仅是错误的相机,而且还被缩放/或仅显示了整个相机馈送的一部分。
我的代码如下所示:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script>
<script src="https://raw.githack.com/AR-js-org/AR.js/master/aframe/build/aframe-ar.js"></script>
<script>
AFRAME.registerComponent("navclick", {
schema: {
url: {
default: ""
}
},
init: function() {
var data = this.data;
var el = this.el;
el.addEventListener("click", () => {
window.open(data.url, "_blank");
});
}
});
</script>
</head>
<body style="margin : 0px; overflow: hidden;">
<a-scene embedded arjs='debugUIEnabled: false; trackingMethod: best; sourceWidth:640; sourceHeight:360; displayWidth: 1920; displayHeight: 1080;'>
<a-marker-camera preset='hiro' cursor="rayOrigin: mouse;">
<a-box src="/1.png" scale = "0.25 0.25 0.25" position="0 0.3 -0.9" navclick="url: https://www.google.com/a"></a-box>
<a-box src="/2.png" scale = "0.25 0.25 0.25" position="0 0.3 -0.6" navclick="url: https://www.google.com/b"></a-box>
<a-box src="/3.png" scale = "0.25 0.25 0.25" position="0 0.3 -0.3" navclick="url: https://www.google.com/c"></a-box>
<a-box src="/4.png" scale = "0.25 0.25 0.25" position="0 0.3 0" navclick="url: https://www.google.com/d"></a-box>
<a-box src="/5.png" scale = "0.25 0.25 0.25" position="0 0.3 0.3" navclick="url: https://www.google.com/e"></a-box>
<a-box src="/6.png" scale = "0.25 0.25 0.25" position="0 0.3 0.6" navclick="url: https://www.google.com/f"></a-box>
</a-marker-camera fov="40">
</a-marker>
</a-scene>
</body>
</html>
解决方案
同样的问题,我的朋友。到目前为止,我发现问题与“嵌入式”属性有关。如果您删除它,它会正常工作,但它不会响应窗口大小。如果我找到解决方案,我一定会分享。
推荐阅读
- javascript - 当像变量一样访问函数时添加返回类型的字符串
- c - 无法播放 Libavcodec (ffmpeg) 编码示例的视频输出
- excel - 使用 Excel 宏修改 CSV
- css - 带有自定义滚动条的闪亮文本
- python - 考虑执行流程时,异常的反面是什么?
- python - 创建或更改 PostgreSQL 表以确保 Django 模型匹配
- java - 为什么 Maven/Eclipse 认为 Java 1.11 早于 1.7?
- python - 如何使用类方法工厂函数实现继承
- sql - 引用另一个外键时,SQL“外键约束格式不正确”
- java - Groovy - 简单的日期重新格式化