问题描述
我有一个简单的页面,它使用 A-Frame 和 AR.js 在找到标记时加载视频,以及一些简单的 UI 来指导用户。这适用于大多数浏览器,但不适用于三星 Internet(Adnroid 浏览器)。
问题在于 UI 未正确放置,并且与其他浏览器中的大小不同。经过远程调试,我发现在三星浏览器上document.documentElement.clientWidth / Height
和window.innerWidth / Height
差别很大,而在其他浏览器上是相同的值。以我的 OnePlus 6T 为例,我得到:
铬:
-
window.innerWidth
:412
-
window.innerHeight
:757
-
document.documentElement.clientWidth
:412
-
document.documentElement.clientHeight
:757
三星:
-
window.innerWidth
:1648
-
window.innerHeight
:2869
-
document.documentElement.clientWidth
:412
-
document.documentElement.clientHeight
:717
如您所见,难怪我的 UI 图像看起来很小,因为三星似乎认为窗口实际上是巨大的,但三星似乎只有在加载 A-Frame 场景后才会“扩展”这些尺寸,因为直到它我有一些不同的 UI 和加载动画,它正确放置元素并像在其他浏览器中一样以正确的尺寸显示它们。
如果我在 A-Frame 仍在加载时查询例如 window.innerHeight
,我得到了正确的 717
,但是一旦加载我再次查询它,我得到 2869
.
A-Frame 或 AR.js 似乎对 <body>
做一些事情,因为一旦它被加载,主体看起来像这样:
<body style="height: 2869px; width: 3825.33px; margin-left: -1088.5px; margin-top: 0px;">
正如您所看到的,机身上新的强制尺寸是三星认为的视口大小,在 Chrome 中也会发生这种情况,尽管这些值与视口大小相同:
<body style="height: 757px; width: 1009.33px; margin-left: -298.5px; margin-top: 0px;">
知道是什么导致了这个问题,我该如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)