据我理解,
我也尝试了各种
我正在尝试为Web游戏制作全屏画布元素,而这个问题阻碍了我的发货能力。据我所知,这个问题只存在于iOS13中。经过几周的搜索,我仍然没有找到一个好的解决方法。
window.innerHeight
应该返回视口的大小,不包括浏览器的地址栏、导航栏、选项卡等。但在最新的iOS13中,情况似乎并非如此。存在两个问题:
- (有时*竖屏模式下太小)如果从竖屏模式旋转到横屏模式且没有打开标签页,然后再回到竖屏模式,
window.innerHeight
的值会变得太小(大约是底部导航栏的大小),导致屏幕底部出现可怕的白色条纹。请参阅macrumors上的讨论以获取更多详细信息:https://forums.macrumors.com/threads/is-this-a-mobile-safari-bug-white-space-appears-at-bottom-after-rotating-iphone.2209551/ - (有时*横屏模式下太大)如果打开了许多标签,打开了“显示标签栏”,然后从竖屏模式旋转到横屏模式,则
window.innerHeight
会变得太大,屏幕底部会被裁剪。
我也尝试了各种
window.innerHeight
的变化,结果大同小异:
- 新的可视化视口API返回的结果与window.innerHeight相同。横屏模式下带有选项卡栏的底部仍然被截断,而竖屏模式仍然具有底部白色条纹。
document.documentElement.clientHeight
使用各种CSS(使用100vh
、100%
等)给出相同的结果。各种div和div元素组合的getBoundingClientRect
也是如此。window.outerHeight
和screen.height
返回完整屏幕大小,不包括浏览器的地址栏、导航栏等,通常太大并导致溢出。- 还尝试了其他一些我现在已经忘记的随机方法(应该记笔记),
我正在尝试为Web游戏制作全屏画布元素,而这个问题阻碍了我的发货能力。据我所知,这个问题只存在于iOS13中。经过几周的搜索,我仍然没有找到一个好的解决方法。