1

私は小さなモバイルフレームワークに取り組んでおり、iPhoneのfadeIn()やfadeOut()などのjQueryアニメーションメソッドでタイミングの問題があります。デスクトップマシンでは、完璧に動作します!問題は、iphoneブラウザがほとんどの場合コールバック時間を無視し、アニメーションが終了する前に関数を開始することです。

ここに私のコード

    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();
                }); 
            });
        }
    });
}

'data'にはmainwrapper(#pageid_10001)が含まれており、これは非表示になっています。他のページがフェードアウトし終わったときにのみ、フェードインする必要があります。

任意のアイデア、どのように私が行動を最適化できるか。

4

1 に答える 1

1

残念ながら、JavaScriptベースのアニメーションは、iPhone上のSafariがそれほどうまく処理できるものではありません。この場合、実際の「表示された」アニメーションが視覚的にハングアップしている間に、アニメーション機能自体が正常に完了する可能性があります。

Safariに組み込まれているCSS3トランジションエフェクトを使用して、探しているスムーズなフェードイン/フェードアウトを取得することをお勧めします:https ://developer.apple.com/library/safari/#documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Introduction .html

一貫性のあるアニメーションを自由に使用できるようになったら、タイミングの同期(この場合、アニメーションの完了時に関数を呼び出す)はかなり簡単なはずです。

于 2012-12-14T01:39:50.763 に答える