0

デバイスを回転させるたびに、カスタムpdfリーダー(html 5)をリロードするためのロードスピナーを表示します。これはAndroidデバイスでうまく機能し、デスクトップデバイスで回転をシミュレートすると、iPadでスピナーが表示されません。まるで、スピナーを表示する/ pdfリーダーをリロードする/スピナーを非表示にするアクションが、「ワンショット」。スピナーが表示されるまでPDFの再読み込みを遅らせようとしましたが、同じことです。アクションのシーケンスは次のとおりです。

window.onorientationchange = function() {
           launchSpinnerThenRotate();
}

function launchSpinnerThenRotate(){
    alert(" i'll launchSpinnerThenRotate");
    showSpinner();
    setTimeout(rotatePdfReader(),1000);
}

js関数とjquery関数の両方を試して、スピナーを常に同じ効果で表示/非表示にしました

function showSpinner(){
    //$('#pdfReaderSpinner').css("visibility" , "visible");
    document.getElementById('pdfReaderSpinner').style.visibility = "visible";
    document.getElementById('pdfReaderSpinner').style.zIndex = 100000000;
}

問題はスピナーにあるとは思いません。ページを最初に起動したときに正しく表示できますが、document.ready関数でスピナーを表示する必要がありました。

$(document).ready(function() { 
    var target = document.getElementById('loadingSpinner');
    spinner = new Spinner({top: 0, left: 0,color:'red'}).spin(target);
    showSpinner();
});

$(window).load(function(){
    initPdfReader();
    hideSpinner();
});
4

1 に答える 1

1

この行を変更します。

setTimeout(rotatePdfReader(),1000);

これに:

setTimeout(rotatePdfReader,1000);

関数への参照をsetTimeoutに渡して、1秒で呼び出せるようにします。現在、関数の結果をsetTimeoutに渡しています。

于 2012-08-24T08:56:29.867 に答える