创建
var int2=interval2 = setInterval(function(){
if(x2.getAttribute('fill')=="green")
x2.setAttribute("fill", "red")
else {
x2.setAttribute("fill", "green")
}},500);//500ms
清除
clearInterval(int2);
判断是否存在,若存在则清除
if(int2){
clearInterval(int2);
}
记录一个坑,之前设置的settimeout在14s执行,但是每10s调用一次创建它的函数,导致第一个settimeout会仍然存在,因此这个也要像interval一样判断并清除,并且要设置全局变量记录,否则if(int2)检测不到。
//定义定时器
var interval1; var interval2; var interval3;var interval4;var interval5;
var set1;var set2;var set3;var set4;var set5;
//初始的五个大圆都是绿色
var x1=document.getElementById("c1");var x2=document.getElementById("c2");var x3=document.getElementById("c3");
var x4=document.getElementById("c4");var x5=document.getElementById("c5");
x1.setAttribute("fill", "green");x2.setAttribute("fill", "green");x3.setAttribute("fill", "green");
x4.setAttribute("fill", "green");x5.setAttribute("fill", "green");
//打开定时器
function redgreen(bjtime,diquid) {
if(diquid=="1"){
//如果上一次的还未结束,即清空。
if(interval1){
clearInterval(interval1);
}
if(set1){
clearTimeout(set1);
}
interval1 = setInterval(function(){
if(x1.getAttribute('fill')=="green")
x1.setAttribute("fill", "red")
else {
x1.setAttribute("fill", "green")
}
},500);
set1=setTimeout(function(){
//清空闪烁
clearInterval(interval1);
x1.setAttribute("fill", "green");
clearTimeout(set1);
}, bjtime);}