2011-10-25 115 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動畫的內容,所以值得!