2012-12-14 42 views
1

我工作在一個小型的移動框架,並與iPhone上的fadeIn()或fadeOut()等jQuery動畫方法有時間問題。在臺式機上,它的工作非常完美! 問題是,iPhone瀏覽器忽略了大部分回調時間,並在動畫結束之前啓動該函數。在iphone5 jQuery回調timming

這裏我的代碼

function show_edit_product_page(curr_key){ 
    $('#pageid_10001').remove(); 
    console.log('removed...') 
    $.ajax({ 
     url  : '../scripts/webservice.php', 
     dataType: 'html', 
     type : 'GET', 
     data : 'type=my_type_data&key='+curr_key, 
     success: function(data) { 
      $('#all_pages').append(data); 
      $('#page_content .page').not('#pageid_10001').fadeOut(350,function() { 
       $('#pageid_10001').fadeIn(350, function(){ 
        myScrol2.refresh(); 
       }); 
      }); 
     } 
    }); 
} 

'數據' 包含mainwrapper(#pageid_10001),這是隱藏的。當其他頁面完成淡出時,它只應該淡入。

任何想法,我如何優化行爲。

回答

1

不幸的是,基於JavaScript的動畫並非iPhone上的Safari處理得很好。在這種情況下,動畫函數本身可能會成功完成,而實際的「顯示」動畫會在視覺上被掛起。

我會建議使用內置的Safari瀏覽器CSS3 過渡效果得到一個不錯的平滑淡入/淡出你正在尋找:https://developer.apple.com/library/safari/#documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Introduction.html

一旦您在您的處置是一致的動畫,同步定時(在你的情況下,調用動畫完成函數)應該是相當平凡的。