誰かが私が持っているリンクをクリックするたびに、新しいページが開くようにしようとしています。ページが開いたら、進行状況バーとタイマーでゼロまでカウントダウンします。
問題は、ウィンドウがアクティブなときにカウントダウンとプログレスバーをカウントダウン/実行することだけです。ウィンドウ/タブがアクティブでないときに、タイマー/プログレスバーを停止させたい。
私はそれを働かせることができません。何が間違っているのかわかりません。
これは私のコードです:
var time = <?php echo $time; ?>
$(function() {
$('#iframe').load(function() {
startCounter();
$('#iframe').unbind('load');
});
});
var isActive = true;
window.onfocus = function() { isActive = true; };
window.onblur = function() { isActive = false; };
function checkfocus() {
if(isActive = true){
time=time-1;
} else {
}
}
function startCounter() {
$('#counter').fadeOut('fast');
setTimeout("$('#counter').fadeIn('fast')",1050);
setTimeout("runCounter()",1000);
}
function runCounter() {
if(time==0){
$('#counter').html('<button class="butn blue" onclick="<?php echo $creditButtonName; ?>();">Click here to get credited!</button>');
}
else {
$('#counter').html('You must view this advertisement for ' + time + ' more seconds!');
startBar();
setTimeout("checkfocus()", 1000);
setTimeout("runCounter()",1000);
}
}
function startBar(){
$('#bar').animate({
width:'100%'
}, <?php echo $time; ?>000);
}
現時点では、タイマーはカウントダウンするだけです。ウィンドウがアクティブでないときなどに停止しません。
私のもう1つの問題は、ウィンドウがアクティブでないときにプログレスバーのアニメーションも停止し、アクティブになったときに再び開始するようにするにはどうすればよいですか?