2011-10-25 80 views
3

我最近刚刚开始开发使用jQTouch的iPhone站点,并有下面的代码:jQuery的动画与性能移动Safari

<li class="title" onclick="showDesc('desc1');">Post Title</li> 
    <li id="desc1" class="shortDesc"> 
     Short description of post content 
     <a href="#viewPost">Read</a> 
    </li> 

<script type="text/css> 
function showDesc(id){ 
    $("#"+id).slideToggle(); 
} 
</script> 

“DESC1”隐藏在CSS并显示在用户点击时帖子标题(我只是在做一个模型,所以传递给showDesc()的参数目前是硬编码的)

我的问题是,当在iPhone上查看它时,动画非常慢, 。它在桌面浏览器(显然!)和iPhone模拟器中运行良好,它仅在单元本身(运行iOS 4.3.2)上运行。

我的问题是这样的:这是我的代码问题还是jQuery未针对Mobile Safari进行优化?

我正在使用jQTouch作为移动框架,但文档只是通过动画的方式讨论页面转换,所以我不确定是否有这样做的方法。

另外,这个任务是否会更适合CSS3动画?

在此先感谢!

回答

1

是的,它是高度推荐使用CSS3转换。它们是硬件加速的,而Javascript动画则不是。您可能想要为幻灯片切换动画转换不透明度以及宽度/高度参数。这是令人讨厌的,但它给你很好的性能

0

你应该在手机上使用CSS3动画,因为“CSS渲染引擎”有更多的机会来优化性能。尤其是像转换转换(不会导致重新布局和重新渲染纹理的东西) - 它们映射在硬件上非常好。

0

事实证明,那很多本身被应用到隐藏<李>

WebKit的-box-shadow属性造成的。虽然CSS3是一个更加“本土化”的选择在手机上渲染问题对于这个任务,jQuery slideToggle()函数似乎工作得很好。

我真的应该给出更详细的CSS概述,但现在已经根据您的建议了解了更多关于CSS3动画的内容,所以值得!