0

我正在为 Android 手机构建一个 PhoneGap-App。我使用这样的机制让用户向 Web 服务提交数据:

$('#backdrop').slideDown('fast',function(){
  var data = prompt('Please enter your data');
  if (data){
    //process data
  } else {
   //go on
  }
});

然而,在我的手机上进行测试时,有时会在元素实际可见之前$('#backdrop')显示提示(在大约 80% 的情况下) ,并等待元素显示,直到提示消失(由于它阻塞性质)。

我觉得这可能是由于我的手机非常旧且速度慢(600MHz 的 HTC Wildfire S),但我可能不是唯一一个使用旧且慢的手机的人,所以很高兴知道是否有是解决此问题的一种方法。

我真的可以通过 jQuery-means 来解决这个问题,还是意味着我不能使用标准提示并且必须自己构建一些东西(使用prompts 是个好主意)?或者这是我现在不知道的完全不同的东西?

jQuery 版本是 1.7.1,Phonegap/Cordova 版本是 1.9.0

4

1 回答 1

2

您的代码看起来正确。确认应该等到幻灯片动画完成,然后显示。

但是我想会发生什么是动画渲染太糟糕了,slideUp功能是完整的,但用户还看不到。然后confirm出现并停止执行。

众所周知,Javascript 动画在移动设备上很糟糕并且不鼓励使用。特别是在旧设备中,它们令人难以忍受。您可以尝试改用 CSS3 动画。有一个名为jQuery Transit的 jQuery 插件,它的语法与 jQuery 的animate函数相同,但使用 CSS3 制作动画。

另一个建议:如果您使用的是 Phonegap,您可能更喜欢navigator.notification.confirm而不是 old-plain confirm,因为它使用设备的本机确认对话框(更好的用户体验)并且它是非阻塞的。

于 2012-07-16T15:59:48.317 回答