苹果手机旋转屏幕之后的问题

    换句话说,当苹果手机屏幕旋转页面重新加载之后,问题就出现了。

    在安卓和谷歌浏览器上正常显示的页面,在苹果手机上出岔子了。具体问题:当页面旋转后,根据父容器的高度更改一个元素的高度,代码执行了,但是没有预期的效果。

    现在想来,没有想到页面旋转后会重新加载页面,是导致后续很久定位不到问题关键所在。

    问题的定位过程:1.获取父容器和子容器,页面旋转后打印高度。发现打印的高度是页面旋转之前的高度,而不是页面旋转之后的高度。猜测:代码执行时页面还没加载好,dom还没全部生成。遂放在页面结构加载完后取值,但还是这样。偶然想到可能是屏幕旋转后重新加载了。百度后才搞明白。

页面加载后,html,css和js同时解析,我的js代码在页面旋转后立即执行,必然快于html.css的解析速度,当js取值时,元素的高度还没有变化。所以才有问题定位时的现象。最后是页面加载后延迟0.4秒执行,预期的效果就出来了。

几个小点:

1.angular获取dom

2.angular操作dom

3.代码重构

1.html:

<div #videoParent></div>

2.ts

@ViewChild("video1") videoParent: ElementRef;

let videoNative=this.videoParent.natveElement;

2.操作dom

render2或者直接.style.setProperty()

3.代码重构

之前尝试解决问题时,添加了很多代码,且逻辑混乱,复杂, 功能也没有分离。导致一个方法非常难看。遂将可分离和重复部分分离,分装成单独函数。分离之后后续代码维护和可靠性都好了很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值