質問: $(window).height(); $('#wrap').css('display','none'); $('#loader-bg ,#loader').height(h).css('display','block'); }); $(window).load(function () { //全ての読み込みが完了したら実行 $('#loader-bg').delay(900).fadeOut(800); $('#loader').delay(600).fadeOut(300); $('#wrap').css('display', 'block'); }); //10秒たったら強制的にロード画面を非表示 $(function(){ setTimeout('stopload()',10000); }); function stopload(){ $('#wrap').css('display','block'); $('#loader-bg').delay(900).fadeOut(800); $('#loader').delay(600).fadeOut(300); } ```
回答: このようにするのはどうでしょうか。 読み込みが終わった時に経過時間が3秒あるか確認して、 あれば表示、なければ5秒との差分待ってから表示します ``` var time=new Date().getTime(); $(function() { var h = $(window).height(); $('#wrap').css('display','none'); $('#loader-bg ,#loader').height(h).css('display','block'); }); //全ての読み込みが完了したら実行 $(window).on('load',function () { var now = new Date().getTime(); if (now-time<=3000) { setTimeout('stopload()',5000-(now-time)); return; } else { stopload(); } }); //10秒たったら強制的にロード画面を非表示 $(function(){ setTimeout('stopload()',10000); }); function stopload(){ $('#wrap').css('display','block'); $('#loader-bg').delay(900).fadeOut(800); $('#loader').delay(600).fadeOut(300); } ```