iOS iPadOS safari 独立Web应用屏幕旋转的时候 onresize window.innerHeight 数值不对。

news/2024/7/20 20:05:48 标签: 前端, ios, safari

safari_Web_onresize_windowinnerHeight__0">iOS iPadOS safari 独立Web应用屏幕旋转的时候 onresize window.innerHeight 数值不对

一、问题描述

我有一个日记应用,是可以作为独立 Web 应用运行的那种,但在旋转屏幕的时候获取到的 window.innerHeightwindow.innerWidth 就不对了,不是屏幕的正常尺寸。导致内容显示不正常。iPhone和 iPad 上都是这样的。

本来应该是这样的。
请添加图片描述
在旋转一次再转回来的时候就成了这样

请添加图片描述

我在程序里是这样写的:

window.onresize = () => {
    this.SET_INSETS({
        windowsHeight: window.innerHeight,
        windowsWidth: window.innerWidth,
        heightPanel: window.innerHeight - 45, // 除 navbar 的高度
    })
}

二、问题解决

搜了下 google 找到了解决办法:虽然 window.innerHeightwindow.innerWidth 的数值不对,但 document.documentElementclientHeightclientWidth 是对的。

window.onresize = () => {
    this.SET_INSETS({
        windowsHeight: window.innerHeight,
        windowsWidth: window.innerWidth,
        heightPanel: window.innerHeight - 45, // 除 navbar 的高度
    })
    console.log('window.innerHeight:', window.innerHeight, window.innerWidth)
    console.log('clientWidth:', document.documentElement.clientWidth, document.documentElement.clientHeight)
}

加上这两个输出能看到结果,在屏幕旋转的时候 clientHeightclientWidth 的数值是正确的。

请添加图片描述

三、结果

换获取高度和宽度的途径换成 document.documentElement.clientHeightdocument.documentElement.clientWidth 就好了


http://www.niftyadmin.cn/n/1060406.html

相关文章

iOS开发如何提高(from 唐巧的博客)

http://blog.devtang.com/blog/2014/07/27/ios-levelup-tips/转载于:https://www.cnblogs.com/jhj117/p/4631017.html

使用PostMan进行API自动化测试

最近在进行一个老项目的升级,第一步是先将node版本从4.x升级到8.x,担心升级会出现问题,所以需要将服务的接口进行验证;如果手动输入各种URL,人肉check,一个两个还行,整个服务。。大几十个接口&a…

数值分析笔记

这里是数值分析的部分笔记,(对前三章的算法都用python做了实验,程序见具体内容处) PS:其中比较不重要的地方偷懒用了一点点numpy的API。内容写的比较简略,仅供参考,望见谅(更详细的数值分析Java实现 请见清…

多线程系列(二):多线程基础

目录 线程的几种状态基础线程前台线程、后台线程一、线程的几种状态 我们所说的基础线程就是通过Thread类显示创建的线程。可以大体了解一下Thread类相关的成员: 属性: 方法: 线程的5个状态: 1、创建状态(new&#xff…

如何打造个人技术影响力

什么是影响力?影响力是用一种别人所乐于接受的方式,改变他人的思想和行动的能力。影响力就是一个品牌,用你的品牌效应去影响和改变人们的行为和思想,说白了就是别人提前某样东西的时候第一时间就会想起你。地边摊和专卖店的产品肯…

键盘enter进行登录

直接放在JSP中的js里面就可以了 $(document).keypress(function(event){if(event.keyCode13){login();}}); 转载于:https://www.cnblogs.com/phyxis/p/5221070.html

vuex分模块4

Vuex下Store的模块化拆分实践 https://segmentfault.com/a/1190000007667542 vue.js vuex 猫切 2016年12月02日发布赞 | 10收藏 | 666k 次浏览前言 最近的项目用到了 vue.js vuex vue-router 全家桶,版本为 >2.0,在搞Store的时候发现&…

SharePoint自动化系列——Set MMS field value using PowerShell.

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 本章将总结一下设置SharePoint list中item的Managed Metadata field value的方法。 以下函数是我封装好的可以直接用来获取相应Managed Metadata类型field的terms value: Add-PSSnap…