在iPhone OS 3.0中使用webkit-transform translate()进行慢动画

时间:2009-07-09 10:40:30

标签: javascript webkit iphone transitions

iPhone OS 3.0中的JavaScript处理有什么变化吗?此代码适用于Safari 4 Public Beta和iPod Touch 2.0,但不适用于带iPhone OS 3.0的iPod touch。目的是在2秒内将盒子向右移动一点,但在3.0中它只是跳转到新位置而没有动画或延迟。

<html>
<head>
<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<title>iPhone JS testing</title>
<style type="text/css">
.box{
  position: absolute;
  width: 150px;
  height: 150px;
  background-color: red;
  -webkit-transition-property: -webkit-transform;
  -webkit-transition-duration: 2.0s;
}
.move{
  -webkit-transform: translateX(100px);
}
</style>
<script src="jquery-1.3.2.min.js" type="application/x-javascript"></script>
</head>
<body>
<script type="text/javascript">
  $(function () {
    $(".box").click(function(){
    $(this).addClass("move");
  });
  });
</script>
<div class="box"></div>
</body>
</html>

我可以通过使用left作为过渡属性来解决这个问题,但当我尝试将其集成到我的项目中时,这给了我其他类型的问题(基本上我需要结合拖动运动和动画运动以及拖动使用translate和动画left-property这是不好的。我不知道是否可以使用left-property实现拖动)。知道上面的代码可能有什么问题,或者这是iPhone OS 3.0以后的功能吗?

2 个答案:

答案 0 :(得分:4)

只有translate3d()和scale3d()函数才能在移动游戏中加速硬件加速。

http://www.mobigeni.com/2010/09/22/how-to-use-hardware-accelerated-css3-3d-transitions-on-ipad-and-iphone/

答案 1 :(得分:1)

没关系,显然最简单的方法是将拖动功能转换为使用left属性。