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 回答