我目前有一些Javascript,如果滴答时间值低于1小时,则每秒检查一次(使用设置间隔),如果为true,则将类“warning”附加到html元素。
当时间值低于1小时时,我还希望有一个声音播放。
我目前有以下内容:
var snd = new Audio("sound.wav");
var x = setInterval(function() {
if (distance < 3600000 ) {
timer.className = "warning" ;
playSound();
}
},1000);
function playSound() {
snd.play;
}
我遇到的问题是,一旦时间值低于1小时(3600000毫秒),它就会每秒播放一次声音,因为它是我的setinterval的一部分,它会检查每秒的时间。如何让它只播放一次?
答案 0 :(得分:0)
要么停止间隔:
var snd = new Audio("sound.wav");
var x = setInterval(function() {
if (distance < 3600000 ) {
timer.className = "warning" ;
snd.play()
clearInterval(x);
}
},1000);
或切换警告布尔值:
var warned=false;
setInterval(function(){
if(distance < 3600000 && !warned){
timer.className="warning";
snd.play();
warned=true;
}
},1000);
或(如果距离是常规倒计时),您可以改为使用setTimeout:
setTimeout(function(){
timer.className="warning";
snd.play();
},Math.max(distance-3600000,0));