显示移动键盘时,transform3d不稳定

时间:2016-03-22 17:46:01

标签: javascript

这看起来似乎是一种奇怪的方式,但我正在制作一个cordova应用程序,这样做可以让我在所有平台上保持一致。

我正试图在键盘向上滑动时向上滑动包含纹理的框:

var windowHeight = window.innerHeight;
var keyHeight = e.keyboardHeight;
var topBarHeight = (windowHeight * .11); //All my top bars are 11vh
var transformHeight = Math.floor((keyHeight / windowHeight) * 100);
textContainer.style.transform = "translate3d(0, -" + transformHeight + "vh , 0)";
textContainer.style.transition = "transform 2s ease-out";

这正好将它放在需要的位置,但出于某种原因,动画在上升过程中非常不稳定。当键盘被解除时(我把它放回应该的位置),我做了几乎相同的事情,并且在向下的过程中它非常流畅。

我考虑过创建一个css动画并动态设置end transform3d,但我不确定它是否能解决任何问题。有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

所以我采取的措施是将所有内容放在一个函数中并进行window.setTimeout调用并将计时器设置为0。所有人都很好地解释了here