我使用以下代码在软键盘事件后调整窗口大小:
var viewheight = window.innerHeight;
var viewwidth = window.innerWidth;
window.addEventListener('resize', function (e) {
var newviewheight = window.innerHeight;
var newviewwidth = window.innerWidth;
if (((viewheight - newviewheight) / viewheight) > 0.35 && ((viewwidth - newviewwidth) / viewwidth) < 0.01) {
window.innerHeight = viewheight;
}
})
当我通常触发方向更改时,它会完美地为我提供新的窗口高度:
window.addEventListener('orientationchange', function () {
setTimeout(getnewhw, 1000);
})
function getnewhw() {
viewheight = window.innerHeight;
viewwidth = window.innerWidth;
document.getElementById('heighttxt').value = viewheight;
}
然而,在用键盘触发resize事件后,orientation函数似乎总是给我分配给&#34; window.innerHeight&#34;的最后一个值。并且永远不会更新,几乎就像我创建了一个新变量一样。出现这种情况的原因是什么?
编辑: 以下是高度发生的情况。
Onload(横向)高度400
纵向方向更改高度800
横向更改高度400
在键盘事件高度400上 - &gt; 250(触发器调整大小) - &gt; 400
从这一点开始,无论调整大小或方向事件被触发,高度始终为400。
纵向更改高度400(错误,应为800)
在键盘事件高度400上 - &gt; 400(条件失败)